一開始看到這題看不懂他的9-degree到底是什麼,查了資料以後終於懂了= =
1. 將各個位數相加得到一個總合sum
2. 將sum除以9,此時會有兩種可能:
(a) 若小於10,那麼就結束了
(b) 若沒有小於10,那麼就回到第一個步驟
每跑完1, 2步驟,深度就加一
#include <stdio.h>
#include <string.h>
int main(void)
{
int i, ok, sum, deg, len, tmp;
char s[1001];
while (gets(s) != NULL && (s[0] != '0' || s[1] != '\0'))
{
ok = sum = 0;
len = strlen(s);
for (i = 0; i < len; i++)
sum = sum + (s[i]-'0');
if (sum%9 == 0)
ok = 1;
deg = 1;
while (sum >= 10)
{
tmp = sum;
sum = 0;
do {
sum = sum + tmp%10;
tmp /= 10;
} while (tmp != 0);
deg++;
}
if (ok)
printf("%s is a multiple of 9 and has 9-degree %d.\n", s, deg);
else
printf("%s is not a multiple of 9.\n", s);
}
return 0;
}
沒有留言:
張貼留言