import java.util.Random;
import java.util.Scanner;
public class w
{
public static void main(String[] args)
{
Scanner leng=new Scanner(System.in);
System.out.println("please enter a's length: ");
int alength=leng.nextInt();
System.out.println("please enter b's length: ");
int blength=leng.nextInt();
int almlength=min(alength,blength);
int alalength=max(alength,blength);
Random r=new Random();
int[] a=new int[alalength];
int[] b=new int[alalength];
char[] c={'+','-','*','/'};
int[] ares=new int[alalength+1];
int[] bres=new int[alalength];
int[] cres=new int[2*alalength];
int[] dres=new int[alalength];
a[alalength-alength]=r.nextInt(9)+1;
b[alalength-blength]=r.nextInt(9)+1;
for(int i=alalength-alength+1;i<alalength;i++)
{
a[i]=r.nextInt(10);
}
for(int i=alalength-blength+1;i<alalength;i++)
{
b[i]=r.nextInt(10);
}
for(int i=alalength-alength;i<alalength;i++)
{
System.out.print(a[i]);
}
int dom=r.nextInt(4);
System.out.print(c[dom]);
for(int i=alalength-blength;i<alalength;i++)
{
System.out.print(b[i]);
}//定义算式
switch(dom)
{
case 0://add
for(int i=alalength-1;i>=0;i--)
{
ares[i+1]=a[i]+b[i]+ares[i+1];//d10->1 a b 9->0;
if(ares[i+1]>9)
{
ares[i]+=1;
ares[i+1]%=10;
}
}
System.out.print('=');
if(ares[0]==0)
{
for(int i=1;i<alalength+1;i++)
System.out.print(ares[i]);
}
else
{
for(int i=0;i<alalength+1;i++)
System.out.print(ares[i]);
}
break;
case 1:
int com = 0;
if(alength<blength)
{
com=0;
}
if(alength>blength)
com=1;
if(alength==blength)
{
int i;
for( i=0;i<alength;i++)
{
if(a[i]<b[i])
{
com=0;
break;
}
if(a[i]>b[i])
{
com=1;
break;
}
}
if(i==alength)
com=1;
}
switch(com)
{
case 0:
for(int i=alalength-1;i>=0;i--)
{
bres[i]=b[i]-a[i]+bres[i];
if(bres[i]<0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
System.out.print('=');
System.out.print('-');
int flag=0;
for(flag=0;flag<alalength;flag++)
{
if(bres[flag]!=0)
break;
}
for(int i=flag;i<alalength;i++)
{
System.out.print(bres[i]);
}
break;
case 1:
for(int i=alalength-1;i>=0;i--)
{
bres[i]=a[i]-b[i]+bres[i];
if(bres[i]<0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
System.out.print('=');
int flagg=0;
for(flagg=0;flagg<alalength;flagg++)
{
if(bres[flagg]!=0)
break;
}
for(int i=flagg;i<alalength;i++)
{
System.out.print(bres[i]);
}
break;
}
break;
case 2:
for(int i=alalength-1;i>=alalength-alength;i--)
{
for(int j=alalength-1;j>=alalength-blength;j--)
{
cres[i+j+1]=a[i]*b[j]+cres[i+j+1];
}
}
for(int i=2*alalength-1;i>=0;i--)
{
if(cres[i]>9)
{
cres[i-1]+=cres[i]/10;
cres[i]%=10;
}
}
System.out.print('=');
int k=0;
while(cres[k++]==0);
for(int i=k-1;i<2*alalength;i++)
System.out.print(cres[i]);
break;
case 3:
int k1=alalength;
while(1==1)
{
for(int i=alalength-1;i>=0;i--)
{
bres[i]=a[i]-b[i]+bres[i];
if(bres[i]<0&&i!=0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
for(k1=0;k1<alalength;k1++)
{
if(bres[k1]<0)
break;
}
if(k1!=alalength)
break;
dres[alalength-1]++;
for(int q=alalength-1;q>0;q--)
{
if(dres[q]>9)
{
dres[q-1]+=1;
dres[q]%=10;
}
}
for(int j=0;j<alalength;j++)
{
a[j]=bres[j];
bres[j]=0;
}
}
System.out.print('=');
int dr=0;
while(dres[dr++]==0);
for(int ll=dr-1;ll<alalength;ll++)
{
System.out.print(dres[ll]);
}
System.out.print("...");
int k2=0;
while(a[k2++]==0);
for(int i=k2-1;i<alength;i++)
System.out.print(a[i]);
break;
}
}
public static int max(int a,int b)
{
if (a>=b)
return a;
else
return b;
}
public static int min(int a,int b)
{
if (a<=b)
return a;
else
return b;
}
}
/*实现大整数的四则运算
大整数按位存储在数组里面
每位上的数随机产生
运算符随机产生
结果验证
输出程序的中间过程与结果*/
import java.util.Scanner;
public class w
{
public static void main(String[] args)
{
Scanner leng=new Scanner(System.in);
System.out.println("please enter a's length: ");
int alength=leng.nextInt();
System.out.println("please enter b's length: ");
int blength=leng.nextInt();
int almlength=min(alength,blength);
int alalength=max(alength,blength);
Random r=new Random();
int[] a=new int[alalength];
int[] b=new int[alalength];
char[] c={'+','-','*','/'};
int[] ares=new int[alalength+1];
int[] bres=new int[alalength];
int[] cres=new int[2*alalength];
int[] dres=new int[alalength];
a[alalength-alength]=r.nextInt(9)+1;
b[alalength-blength]=r.nextInt(9)+1;
for(int i=alalength-alength+1;i<alalength;i++)
{
a[i]=r.nextInt(10);
}
for(int i=alalength-blength+1;i<alalength;i++)
{
b[i]=r.nextInt(10);
}
for(int i=alalength-alength;i<alalength;i++)
{
System.out.print(a[i]);
}
int dom=r.nextInt(4);
System.out.print(c[dom]);
for(int i=alalength-blength;i<alalength;i++)
{
System.out.print(b[i]);
}//定义算式
switch(dom)
{
case 0://add
for(int i=alalength-1;i>=0;i--)
{
ares[i+1]=a[i]+b[i]+ares[i+1];//d10->1 a b 9->0;
if(ares[i+1]>9)
{
ares[i]+=1;
ares[i+1]%=10;
}
}
System.out.print('=');
if(ares[0]==0)
{
for(int i=1;i<alalength+1;i++)
System.out.print(ares[i]);
}
else
{
for(int i=0;i<alalength+1;i++)
System.out.print(ares[i]);
}
break;
case 1:
int com = 0;
if(alength<blength)
{
com=0;
}
if(alength>blength)
com=1;
if(alength==blength)
{
int i;
for( i=0;i<alength;i++)
{
if(a[i]<b[i])
{
com=0;
break;
}
if(a[i]>b[i])
{
com=1;
break;
}
}
if(i==alength)
com=1;
}
switch(com)
{
case 0:
for(int i=alalength-1;i>=0;i--)
{
bres[i]=b[i]-a[i]+bres[i];
if(bres[i]<0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
System.out.print('=');
System.out.print('-');
int flag=0;
for(flag=0;flag<alalength;flag++)
{
if(bres[flag]!=0)
break;
}
for(int i=flag;i<alalength;i++)
{
System.out.print(bres[i]);
}
break;
case 1:
for(int i=alalength-1;i>=0;i--)
{
bres[i]=a[i]-b[i]+bres[i];
if(bres[i]<0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
System.out.print('=');
int flagg=0;
for(flagg=0;flagg<alalength;flagg++)
{
if(bres[flagg]!=0)
break;
}
for(int i=flagg;i<alalength;i++)
{
System.out.print(bres[i]);
}
break;
}
break;
case 2:
for(int i=alalength-1;i>=alalength-alength;i--)
{
for(int j=alalength-1;j>=alalength-blength;j--)
{
cres[i+j+1]=a[i]*b[j]+cres[i+j+1];
}
}
for(int i=2*alalength-1;i>=0;i--)
{
if(cres[i]>9)
{
cres[i-1]+=cres[i]/10;
cres[i]%=10;
}
}
System.out.print('=');
int k=0;
while(cres[k++]==0);
for(int i=k-1;i<2*alalength;i++)
System.out.print(cres[i]);
break;
case 3:
int k1=alalength;
while(1==1)
{
for(int i=alalength-1;i>=0;i--)
{
bres[i]=a[i]-b[i]+bres[i];
if(bres[i]<0&&i!=0)
{
bres[i]+=10;
bres[i-1]-=1;
}
}
for(k1=0;k1<alalength;k1++)
{
if(bres[k1]<0)
break;
}
if(k1!=alalength)
break;
dres[alalength-1]++;
for(int q=alalength-1;q>0;q--)
{
if(dres[q]>9)
{
dres[q-1]+=1;
dres[q]%=10;
}
}
for(int j=0;j<alalength;j++)
{
a[j]=bres[j];
bres[j]=0;
}
}
System.out.print('=');
int dr=0;
while(dres[dr++]==0);
for(int ll=dr-1;ll<alalength;ll++)
{
System.out.print(dres[ll]);
}
System.out.print("...");
int k2=0;
while(a[k2++]==0);
for(int i=k2-1;i<alength;i++)
System.out.print(a[i]);
break;
}
}
public static int max(int a,int b)
{
if (a>=b)
return a;
else
return b;
}
public static int min(int a,int b)
{
if (a<=b)
return a;
else
return b;
}
}
/*实现大整数的四则运算
大整数按位存储在数组里面
每位上的数随机产生
运算符随机产生
结果验证
输出程序的中间过程与结果*/