177 条题解
-
-3
zhuangB
#include<bits/stdc++.h> using namespace std; int e(int q,int w) { return q+w; } int main() { double a,b,c; cin >> a >> b; c=e(a,b); double d=--c; double f=++d; double g=--f; double h=++g; double i=h; double j=i;//鱼乐 double k=j; double l=k; double m=--l; double n=++m; double o=n; double p=o; double r=p; double s=r; double t=s; double u=t; double v=u; double x=v; double y=++x; double z=--y; cout<<z; return 0; }
-
-3
我太害怕爆long long了,就算题目说在1到100之间,所以就简单的写了个高精度
#include <bits/stdc++.h> #define maxn 520 using namespace std; int a1[maxn],b1[maxn],sum[maxn];//用数组来存数字 int main(){ string a,b; cin>>a>>b;//输入 int cnt=max(a.size(),b.size()); for(int i=a.size()-1,j=1;i>=0;i--,j++){ a1[j]=a[i]-'0';//存进数组 } for(int i=b.size()-1,j=1;i>=0;i--,j++){ b1[j]=b[i]-'0';//同上,存进数组 } for(int i=1;i<=cnt;i++){ sum[i]+=a1[i]+b1[i];//相加 sum[i+1]=sum[i]/10;//进位 sum[i]%=10; } if(sum[cnt+1]) cnt++; for(int i=cnt;i>=1;i--) cout<<sum[i];//倒着输出 }
-
-3
看到没人用位运算,赶紧来写一发一道很棒的模拟题,模拟计算机运算过程。
#include<bits/stdc++.h> using namespace std; int add(int a,int b) { if(b==0)//b(进位)为0(没有进位了),返回a; { return a; } else { int x,s; x=a^b;//a和b不进位加法的值 s=(a&b)<<1;//a和b进位的值,只有两个位数都是1才能进位,所以是与运算,左移一位是因为二进制和十进制一样把进位加到左一位上 return add(x,s);//将进位值与不进位加法值再进行一次运算得到结果 } } int main() { int a,b; cin>>a>>b; cout << add(a,b); return 0; }
信息
- ID
- 1
- 时间
- 1000ms
- 内存
- 16MiB
- 难度
- 6
- 标签
- 递交数
- 26220
- 已通过
- 8164
- 上传者