链接:zoj 1115 或 hdoj 1013 或poj 1519
虽说是水题,却几经波折才搞定。该题目中的数字可能非常大,所以不能使用整型数,只能采用字符变量
代码如下:
#include <stdio.h>int digitalRoot(int n); int digitSum(int n);int main(void) {char c;int sum;while( (c = getchar()) != EOF){if(c == '0')break;sum = 0;while(c != '\n' && c != EOF){sum += c - '0'; c = getchar();}printf("%d\n",digitalRoot(sum));if( c == EOF)break;}return 0; } int digitalRoot(int n) {int sum = digitSum(n);while(sum >= 10)sum = digitSum(sum);return sum; } int digitSum(int n) {int sum;for(sum = 0; n > 0; n /= 10)sum += n % 10;return sum; }