POJ 1519——Digital Roots

題目鏈接:http://poj.org/problem?id=1519

題目大意就是,給你一個整數,求它的數字根,數字根的定義就是如果這個數小於10,則它就是數字根,若大於等於10則要把它的各個位上的數字加起來,若仍大於等於10,則重複這個過程,直至小於10。例,整數24,大於等於10,2+4=6,6就是這個數數字根;整數39,3+9=12,1+2=3,3就是數字根。

這個題有個神奇的規律,我也是看了別人的解題報告,就是先把這個整數的各個位上的數加起來對9取模就是數字根。

代碼:

#include<stdio.h>
#include<string.h>
int main()
{
    int i,sum,b,n;
    char a[2000];
    while(1){
        scanf("%s",a);
	if(strcmp(a,"0")==0)
	    break;
	n=strlen(a);
	sum=0;
	for(i=0;i<n;i++)
	    sum+=a[i]-'0';		
	b=sum%9;
	if(b==0)
            b=9;	
	printf("%d\n",b);
    }
    return 0;
}

發佈了58 篇原創文章 · 獲贊 22 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章