首页 > 后端开发 > C++ > C程序检查一个数字是否可被其各位数字之和整除

C程序检查一个数字是否可被其各位数字之和整除

王林
发布: 2023-08-30 16:05:08
转载
1591 人浏览过

C程序检查一个数字是否可被其各位数字之和整除

给定一个数字n,我们需要检查其各位数字之和是否能整除n。为了找出答案,我们需要将所有数字从个位开始相加,然后用最终的和去除以该数字。

比如我们有一个数字"521",我们需要找出其各位数字之和,即"5 + 2 + 1 = 8",但是521不能被8整除,余数不为0。

再举个例子,"60",其各位数字之和为"6 + 0 = 6",6能够整除60,余数为0。

例子

Input: 55
Output: No
Explanation: 5+5 = 10; 55 not divisible by 10
Input: 12
Output: Yes
Explanation: 1+2 = 3; 12 is divisible by 3
登录后复制

下面使用的方法如下:

为了解决这个问题,我们需要从输入中获取每个数字,并计算每个数字的和,然后检查它是否能整除这个数字。

  • 获取输入
  • 从个位开始获取每个数字,并将其加到一个初始值为零的总和变量中
  • 用数字的总和除以输入
  • 返回结果

算法

In function int isDivisible(long int num)
   Step 1-> Declare and initialize temp = num, sum = 0
   Step 2-> Loop While num
      Declare and initialize k as num % 10
   Set sum as sum + k
      Set num as num / 10
   End Loop
   Step 3-> If temp % sum == 0 then,
      Return 1
   Step 4-> Return 0
      End function
In main()
   Step 1-> Declare and initialize num as 55
   Step 2-> If isDivisible(num) then,
      Print "yes "
   Step 3-> Else
Print "no "
登录后复制

示例

 演示

#include <stdio.h>
// This function will check
// whether the given number is divisible
// by sum of its digits
int isDivisible(long int num) {
   long int temp = num;
   // Find sum of digits
   int sum = 0;
   while (num) {
      int k = num % 10;
      sum = sum + k;
      num = num / 10;
   }
   // check if sum of digits divides num
   if (temp % sum == 0)
      return 1;
      return 0;
}
int main() {
   long int num = 55;
   if(isDivisible(num))
      printf("yes</p><p>");
   else
      printf("no</p><p>");
      return 0;
}
登录后复制

输出

如果运行上述代码,将会生成以下输出 −

No
登录后复制

以上是C程序检查一个数字是否可被其各位数字之和整除的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:tutorialspoint.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板