作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读讨论代码,但不明白输出 5 位数字之和的语法。我认为 C 从上到下、从左到右读取所有内容,那么 sum % 10 和/10 在语法上是怎样的呢?
这是来自hackerrank的挑战,输入5位数字,输出5位数字之和。
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
int main() {
int n;
scanf("%d", &n);
int sum = 0;
while(n)
{
sum += n % 10;
n/= 10;
}
printf("%d\n", sum);
//Complete the code to calculate the sum of the five digits on n.
return 0;
}
样本输入10564样本输出16
最佳答案
总和不是“语法上既是 % 10
又是 /10
”。
n % 10
是 n
的最低有效(最右边)数字。
这就是添加到 sum
中的内容。
然后 n/= 10
(n = n/10
) 从 n
中“砍掉”该数字,然后重复该过程。
您可以手动完成它:
设置n = 12345
和sum = 0
。
12345
不为零,因此进入循环:
12345 % 10
是 5
,因此 sum += 5
,即 5
。12345/10
是 1234
,因此 n = 1234
。
现在,n
是 1234
,它不为零。
1234 % 10
是 4
,因此 sum += 4
,即 9
。1234/10
为 123
,因此 n = 123
。
123
不为零...
依此类推,直到n
变为零,这将在只剩下一位数字后发生。
关于c - 我不太明白它添加 5 位输入的总和的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56152242/
我是一名优秀的程序员,十分优秀!