📄 riadd2.cpp
字号:
#include "iostream"
#define MAXRANGE 40
#define MAXINPUT 20
using namespace std;
int product[MAXRANGE]={0},num[MAXRANGE]={0} , sum[MAXRANGE]={0};
void multarray();
void divi();
void show();
int main(int argc, char* argv[])
{
int k=0,tmp=0;
char in[MAXINPUT];
cout<<"input";
cin>>in;
for(int i=0;i<MAXINPUT;i++){
if(in[i]==0){tmp=i;break;}
}
for(int j=(tmp-1);j>=0;j--){
num[j]=(in[k]-48);
k++;
}
for(int l=0;l<MAXRANGE;l++){
sum[l]=num[l];
}
num[0]=num[0]+1;
multarray();
for(int h=0;h<MAXRANGE;h++)sum[h]=0;
divi();
show();
// printf("Hello World!\n");
return 0;
}
void multarray(){
int overflow=0,overflowa=0;
for(int k=0;k<MAXRANGE;k++){
for(int i=0;i<MAXRANGE;i++){
// for(int j=0;j<MAXRANGE;j++)if(sum[j]>9)sum[j]=sum[j]%10;
sum[i]=sum[i]*num[k]+overflow;
overflow=0;
overflow=sum[i]/10;
sum[i]=sum[i]%10;
}
for(int t=0;t<k;t++){
for(int b=MAXRANGE;b>0;b--)sum[b]=sum[b-1];
sum[0]=0;
}
for(int p=0;p<MAXRANGE;p++){
// for(int j=0;j<MAXRANGE;j++)if(sum[j]>9)sum[j]=sum[j]%10;
product[p]=product[p] + sum[p] + overflowa;
overflowa=0;
overflowa=product[p]/10;
product[p]=product[p]%10;
}
for(int y=0;y<MAXRANGE;y++)sum[y]=num[y];
sum[0]=num[0]-1;
}
}
void divi(){
int last=0;
for(int i=MAXRANGE-1;i>-1;i--){
sum[i]=(product[i]+last*10)/2;
last=0;
last=product[i]%2;
}
}
void show(){
int flag=0;
for(int i=MAXRANGE-1;i>-1;i--){
if(sum[i]>0)flag=1;
if(flag==1)cout<<sum[i];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -