poj1503

Integer Inquiry

#include “iostream” #include “math.h” using namespace std; bool isEnd(char *str) { if(str[0]==’0’&&str[1]==0)return true; else return false; } void add(char *num1,char *num2); void move(char *num); int main() { char number[105]; char result[105]; memset(number,’0′,105); memset(result,’0′,105); result[104]=0; cin>>number; while(!isEnd(number)) { move(number); add(number,result); memset(number,’0′,105); cin>>number; } char *p=result; while(*p==’0′)p++; cout<<p<<endl; system(“pause”); return 0; } void add(char *num1,char *num2) { int flag=0; for(int i=103;i>=0;i–)//预留最后的0 { int p=num1[i]-‘0’+num2[i]-‘0’+flag; num2[i]=(char)(p%10)+’0′; if(p>=10)flag=1; else flag=0; } } void move(char *num) { int i=0; while(num[104-i]==’0′) { i++; } for(int j=104;j>=0;j–) { if(j-i>=0) num[j]=num[j-i]; else num[j]=’0’; } }

点赞