大数加法 自定义函数
jia(ans,a,b)相当于ans=a+b;
输入输出都用%s输入。
#include
#include
#include
#define bit 1000
using namespace std;
int kase = 0;
int jia(char ans[], char a1[], char b1[])
{int a[bit], b[bit], c[bit];int lena, lenb, lenc, i, x;memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));lena = strlen(a1);lenb = strlen(b1);for (i = 0; i <= lena - 1; i++)a[lena - i] = a1[i] - 48;for (i = 0; i <= lenb - 1; i++)b[lenb - i] = b1[i] - 48;lenc = 1; x = 0;while (lenc <= lena || lenc <= lenb){c[lenc] = a[lenc] + b[lenc] + x;x = c[lenc] / 10;c[lenc] %= 10;lenc++;}c[lenc] = x;if (c[lenc] == 0)lenc--;int top = 0;for (i = lenc; i >= 1; i--)ans[top++] = c[i] + '0';ans[top] = '\0';return 0;
}
string版,区别不大。
#include
#include
#include
#include
#define bit 1000
using namespace std;
int kase = 0;
int jia(string ans, string a1, string b1)
{int a[bit], b[bit], c[bit];int lena, lenb, lenc, i, x;memset(a, 0, sizeof(a));memset(b, 0, sizeof(b));memset(c, 0, sizeof(c));lena = a1.length();lenb = b1.length();for (i = 0; i <= lena - 1; i++)a[lena - i] = a1[i] - 48;for (i = 0; i <= lenb - 1; i++)b[lenb - i] = b1[i] - 48;lenc = 1; x = 0;while (lenc <= lena || lenc <= lenb){c[lenc] = a[lenc] + b[lenc] + x;x = c[lenc] / 10;c[lenc] %= 10;lenc++;}c[lenc] = x;if (c[lenc] == 0)lenc--;int top = 0;for (i = lenc; i >= 1; i--)ans[top++] = c[i] + '0';ans[top] = '\0';return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
