21xrx.com
2024-03-29 03:19:15 Friday
登录
文章检索 我的文章 写文章
C中的数字总和
2021-07-06 21:37:04 深夜i     --     --
C

数字总和 C 程序计算一个数字的数字总和,我们使用模运算符 (%) 提取数字的单个数字并继续添加它们。

 

C中一个数的位数之和

#include <stdio.h>


int main()
{
   int n, t, sum = 0, remainder;

   printf("Enter an integer\n");
   scanf("%d", &n);

   t = n;

   while (t != 0)
   {
      remainder = t % 10;
      sum       = sum + remainder;
      t         = t / 10;
   }

   printf("Sum of digits of %d = %d\n", n, sum);

   return 0;
}

如果您愿意,可以修改输入变量 (n) 而无需使用附加变量 (t),但我们不建议这样做。

 

程序输出:

例如,如果输入为 98,则变量 sum 最初为 0 98%10 = 8(% 是模运算符,它给出了 98 除以 10 时的余数)。 sum = sum + 余数 so sum = 8 now.98/ 10 = 9 因为在 C 语言中,每当我们将一个整数除以另一个整数时,就会得到一个整数。9%10 = 9sum = 8(前一个值)+ 9sum = 179/10 = 0。所以最后,n = 0, 循环结束; 我们得到所需的总和。

下载添加数字程序。

C程序使用for循环查找数字总和

#include <stdio.h>


int main()
{
   int n, sum = 0, r;

   printf("Enter a number\n");

   for (scanf("%d", &n); n != 0; n = n/10) {
      r = n % 10;
      sum = sum + r;
   }

   printf("Sum of digits of a number = %d\n", sum);

   return 0;
}

在没有模运算符的情况下计算 C 中的数字总和

C 程序来查找不使用模运算符的整数的数字之和。 我们的程序使用一个字符数组(字符串)来存储一个整数。 我们将它的每个字符转换为一个整数,然后将所有这些整数相加。

#include <stdio.h>
 
int main()
{
   int c, sum, t;
   char n[1000];
   
   printf("Input an integer\n");
   scanf("%s", n);
 
   sum = c = 0;
   
   while (n[c] != '\0') {
      t   = n[c] - '0'; // Converting character to integer
      sum = sum + t;
      c++;
   }
 
   printf("Sum of digits of %s = %d\n", n, sum);
 
   return 0;
}

这种方法的一个优点是输入的整数可能很大,我们无法将其存储在 int 或 long long 数据类型变量中。 请参阅下面的示例。

程序输出:

Input an integer
9876543210
Sum of digits of 9876543210 = 45

C程序使用递归查找数字的数字总和

#include <stdio.h>


int add_digits(int);

int main()
{
  int n, result;

  scanf("%d", &n);

  result = add_digits(n);

  printf("%d\n", result);

  return 0;
}

int add_digits(int n) {
  if (n == 0)  // Base case
    return 0;

  return (n%10 + add_digits(n/10));
}

 

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复