大数运算 (C++)
发布时间:2020-12-14 04:14:15 所属栏目:大数据 来源:网络整理
导读:#include string #include iostream using namespace std; char num[4][100];char s[100];int main() { void swi();void clear(char *s);void add(char *s1,char *s2,char *s);while(cinnum[0]num[1]num[2]){for(int i = 0; i 97; i++){add(num[0],num[1],s)
#include <string> #include <iostream> using namespace std; char num[4][100]; char s[100]; int main() { void swi(); void clear(char *s); void add(char *s1,char *s2,char *s); while(cin>>num[0]>>num[1]>>num[2]){ for(int i = 0; i < 97; i++){ add(num[0],num[1],s); add(num[2],s,num[3]); strcpy(num[0],num[1]); strcpy(num[1],num[2]); strcpy(num[2],num[3]); } cout << num[3] << endl; clear(s); clear(num[3]); } return 0; } void clear(char *s) { while(*s) *s++ = ' '; } void add(char *s1,char *s) { void swi(char *s); int flag = 0; int i = 0; char *p1 = s1; char *p2 = s2; while(*p1 != ' ') p1++; while(*p2 != ' ') p2++; --p1,--p2; while(p1 != s1-1 && p2 != s2-1){ s[i] = (flag + *p1-'0'+ *p2-'0')%10 +'0'; i++; if(*p1-'0' + *p2-'0' +flag > 9) flag = 1; else flag = 0; p1--,p2--; } if(p1 == s1-1){ while(p2 != s2-1){ s[i] = (flag + *p2 -'0')%10 + '0'; i++; if(*p2-- -'0' + flag > 9) flag = 1; else flag = 0; } } else while(p1 != s1-1){ s[i] = (flag + *p1 -'0')%10 + '0'; i++; if(flag + *p1-- -'0' > 9) flag = 1; else flag = 0; } if(flag) s[i] = '1'; s[++i] = ' '; swi(s); } void swi(char *s) { int i ; int j = strlen(s)-1; char c; for(i=0; i < strlen(s)/2; i++,j--){ c = s[i]; s[i] = s[j]; s[j] = c; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |