3 条题解
-
0
#include<stdio.h> #include<string.h> int main() { int n; char s[1000005]; scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%s", s); int la = strlen(s); for (int i = 0; i < la; i++) { s[i] = s[i] - '0'; }//将每一个字符变成数值 for (int i = 0; i < la-1; i++) { if (s[i] == 9) { s[i] = 0; } if (s[i] < 9) { s[i + 1] = (10 * s[i] + s[i + 1]) % 9; s[i]=0; }//每进进一位,取余一次 } printf("%d\n",s[la-1]); }
return 0;
}
-
0
#include<stdio.h> #include<string.h> int main(){ int n; scanf("%d",&n); while(n--){ char nstr[1000005]; int num = 0; scanf("%s", nstr); int len = strlen(nstr); for (int i = 0; i < len; i++) num = (num * 10 + nstr[i] - '0') % 9; /*从高位到低位取余, 逐位计算各个位数之和及其与9的余数*/ printf("%d\n", num%9); memset(nstr, 0, sizeof(nstr)); } return 0; }
- 1
信息
- ID
- 166
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- (无)
- 递交数
- 945
- 已通过
- 212
- 上传者