目录
1001题
题目描述
输入输出格式
输入格式
输出格式
输入输出样例
输入样例#1:
输出样例#1:
头文件和数组等初始定义
第一个函数——converts
第二个函数——add
第三个函数——print
主函数部分
完整代码
1002题
题目描述
输入输出格式
输入格式
输出格式
输入输出样例
1002题完整代码
输入两行,正整数x和y,输出x+y的值
注意:x,y<=10^200
输入文件名xplusy.in 输入两行正整数
输出文件名xplusy.out 输出一个正整数
10000000000000000000000 99999999999999999999999
109999999999999999999999
需要注意的是这里的x和y最高都可以达到10的200次方 很明显unsigned long long 完全不够用 毕竟已经是超高精度了
所以 我们就要用我们的究极大招——用数组储存数
这里的话要先定义头文件和数组等
#include
#define SIZE 209
using namespace std;
int x[SIZE],y[SIZE];
所以 我们需要做三个函数
void converts(int *a,string s){int i,len=s.size();for(i=0;i
我们进行的是a+=b的操作
但是注意 这里因为是数组 要逐位相加并进位
void add(){//a+=b//逐位相加for(int i=0;i=10){//进位 x[i+1]++;x[i]-=10;}}
}
这个的话其实有没有无所谓 如果这道题要输出多个数的话 建议还是要单独有一个
void print(){int i;for(i=SIZE-1;i>0;i--) if(x[i]>0) break;for(;i>=0;i--) cout<
//主函数部分
int main(){//freopen("xplusy.in","r",stdin); 测试的时候注释掉 等提交时再去掉//freopen("xplusy.out","w",stdout); 测试的时候注释掉 等提交时再去掉string s1,s2;cin>>s1>>s2;converts(x,s1);converts(y,s2);add();print();return 0;
}
#include
#define SIZE 209
using namespace std;
int x[SIZE],y[SIZE];
void converts(int *a,string s){int i,len=s.size();for(i=0;i=10){//进位 x[i+1]++;x[i]-=10;}}
}
void print(){int i;for(i=SIZE-1;i>0;i--) if(x[i]>0) break;for(;i>=0;i--) cout<>s1>>s2;converts(x,s1);converts(y,s2);add();print();return 0;
}
没账号的小盆友看这里
#include
#define SIZE 209
using namespace std;
int x[SIZE],y[SIZE];
void converts(int *a,string s){
int i,len=s.size();
for(i=0;i
void add(){//a+=b
//逐位相加
for(int i=0;i
x[i]=x[i]+y[i];
if(x[i]>=10){//进位
x[i+1]++;
x[i]-=10;
}
}
}
void print(){
int i;
for(i=SIZE-1;i>0;i--) if(x[i]>0) break;
for(;i>=0;i--) cout<
int main(){
freopen("xplusy.in","r",stdin);
freopen("xplusy.out","w",stdout);
string s1,s2;
cin>>s1>>s2;
converts(x,s1);
converts(y,s2);
add();
print();
return 0;
}
https://www.etiger.vip/https://www.etiger.vip/ 点击直接提交
输入三行,正整数x,y和z,输出x+y+z的值
注意:x,y,z<=10500
输入文件plus.in 三行正整数
输出文件plus.out 一个正整数
输入样例#1:
10000000000000000000000 99999999999999999999999 1
输出样例#1:
110000000000000000000000
1002题主题思路与1001相同
只是多了一个加数
所以......
直接上代码!
#include
using namespace std;
typedef long long ll;
void convert(int *a,string s,int size=200009){int i,len=s.size();for(i=0;i=10) a[i+1]++,a[i]-=10;
}
void add(int *a,int b,int size=200009){for(int i=0;i=10){a[i]-=10,a[i+1]++;}}
}
void print(int *a,int size=200009){int i;for(i=size;i>0;i--) if(a[i]!=0) break;for(;i>=0;i--) cout<>a>>b>>c;convert(x,a);convert(y,b);convert(z,c);add(x,y);add(x,z);print(x);return 0;
}
没账号的小朋友看这里
#include
using namespace std;
typedef long long ll;
void convert(int *a,string s,int size=200009){
int i,len=s.size();for(i=0;i
void add(int *a,int *b,int size=200009){
for(int i=0;i
}
void add(int *a,int b,int size=200009){
for(int i=0;i
a[i]+=(b%10);
b/=10;
if(a[i]>=10){
a[i]-=10,a[i+1]++;
}
}
}
void print(int *a,int size=200009){
int i;for(i=size;i>0;i--) if(a[i]!=0) break;
for(;i>=0;i--) cout< }
int x[2000009],y[2000009],z[2000009];
int main(){
string a,b,c;
cin>>a>>b>>c;
convert(x,a);
convert(y,b);
convert(z,c);
add(x,y);
add(x,z);
print(x);
return 0;
}
以上就是本期所有内容了 谢谢
希望各位大佬们点个赞👍吧!!!求求啦~~~
关注+点赞超过100个立马更新哦!
版权声明:本文为CSDN博主「ian20120124_」的原创文章,如需转载,请通知CSDN博主「ian20120124_」。
————————————————————————————————
————————————————
————————————————
下一篇:101-并发编程详解(上篇)