Jasin Yip

计蒜客【挑战难题】系列讲解(二)整除问题

题目

第2题:整除问题

  判断一个数是否能被另一个整数整除是一个挺简单的问题,一般一个模运算就可以搞定了,懒惰的晓萌还是不想自己做,于是找到你帮他写代码,你就帮帮他吧。
  输入包括两个由空格分开的整数M和N(1≤M,N≤500)。
  输出包括一行,如果M可以被N整除就输出YES,否则输出NO(结果大小写敏感)。

样例输入

21 7

样例输出

YES

C 实现

#include <stdio.h>  
  
int main(){  
    int M, N;  
    scanf("%d%d", &M, &N);  
    if ((M % N) == 0)  
        printf("YES");   
    else  
        printf("NO");  
      
    return 0;  
}  

它如何工作

  本题目主要考查对选择结构(if语句)的使用,以及第五则运算(%,取余)。
  输入M、N两个数后,通过if语句,判断M除以N的余数是否为0(即是否能整除),
    如果是,则输出YES
    如果否,则输出NO

小贴士

  有些同学把题目中的“(1≤M,N≤500)”写到代码中,我为他们这样的想法感到很奇怪。
  题目给出的只不过是M、N的取值范围,为什么会写到if语句的判断式中呢?
  给出取值范围,一般是用来简化,或者限制某些数据的数量,比如数组的个数或者字符的长度等等。
  目的是减少无谓内容的干扰,把重点放在算法上。

标签:c语言, 计蒜客, 挑战难题

已有 3 条评论

  1. 加基森 加基森

    你如果不写范围 除数等于0 程序就错了

  2. 污鱼 污鱼

    能否给份c++的模板,况且如果被除数为N时会出错的。

    1. Ryan Ryan

      #include
      using namespace std;
      int main()
      {
      int M;
      int N;
      cin >> M >> N;
      if (M % N == 0)
      cout << "YES" << endl;
      else
      cout << "NO" << endl;
      return 0;

      }

添加新评论