📄 rimult.cpp
字号:
#include "iostream"
#include "stdlib.h"
#define MAXRANGE 200
#define MAXINPUT 20
using namespace std;
int product[MAXRANGE]={0},num[MAXRANGE]={0} , sum[MAXRANGE]={0};
void multarray();
void divi();
void show();
void inc(int i);
int main(int argc, char* argv[])
{
int k=0,tmp=0,N=0;
char in[MAXINPUT];
cout<<"input";
cin>>in;
N=atoi(in);
// cout<<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];
}
// for(int r=0;r<MAXRANGE;r++){
// tmpp[r]=num[r];
// }
// while(1){
// inc(0);
// }
N--;
while(N--){
inc(0);
multarray();
for(int r=0;r<MAXRANGE;r++)
{
sum[r]=product[r];
// tmpp[r]=product[r];
}
}
// for(int h=0;h<MAXRANGE;h++)sum[h]=0;
// divi();
show();
cin>>k;
// printf("Hello World!\n");
return 0;
}
void multarray(){
int overflow=0,overflowa=0,tmpp[MAXRANGE]={0};
for(int r=0;r<MAXRANGE;r++){
product[r]=0;
tmpp[r]=sum[r];
}
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]=tmpp[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];
}
}
void inc(int i){
num[i]--;
if(num[i]<0){
num[i]=9;
inc(i+1);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -