天天看點

ZOJ 1115解題報告

這個題目的意思很簡單,很多人之是以送出不通過是因為 用的 int型處理資料,這樣當資料很大時就不能用了,是以不過。

還有一個難點就是如果加和得到的樹根>10該怎麼寫函數處理? 

這裡有一個很簡單的數學方法,叫做:
           
一個數的樹根就是該數mod9的餘數,特殊的,mod9 ==0 ,樹根為9
           
是以從這個題上面我看到了數學的魅力
           

附上可送出代碼:

#include <iostream>
#include <string.h>
using namespace std;
int Addnum(char *num)   {   //利用字元串處理數
    int sum=;
    char *p = num;
    while(*p){
        sum+=*p-'0';
        p++;
    }
    return sum;
}
int main(){
    char num[];
    while(cin>>num && strcmp(num,"0")!=){
        int temp=Addnum(num);
        if(temp%==){
            cout<<<<endl;
    }
        else
            cout<<temp%<<endl;
    }   

}