package dazhengshu;import java.util.*;
//import java.util.LinkedList;
class duanlian
{
public static void main(String args[])
{int c[]=new int[100];
int jinwei=0;
int k=0;
int d=0;
int m=0;
//LinkedList stack=new LinkedList();
ArrayList list=new ArrayList();
int a[]={5,4};
int b[]={3,4};
for(int i=a.length-1;i>=0;i--){
for(int j=b.length-1;j>=0;j--){
c[k]=b[i]*a[j];
k++;
}
}
for( k=0;k<a.length*b.length;k++)
{
System.out.print(c[k]+" ");
}
//for(int i=0;i<c.length;i++){
d=c[0];
int e=d;
while(d>10)
{
d=d/10;
jinwei=d;
}
m=e-(d*10);
list.add(m);
//}
d=c[1];
e=d;
while(d>10)
{
d=d/10;
jinwei=d;
}
m=e-(d*10);
list.add(m);System.out.println();
for(int i=0;i<c.length;i++)
System.out.println(d);System.out.print(m);}
}大家能不能看懂我的意思,就是把这两个数两两相乘算出来。把高位和低位分离,然后模仿笔算乘法,最后得出结果。不会做了。希望高手帮忙,ps:a数组和b数组的长度可以无限大
//import java.util.LinkedList;
class duanlian
{
public static void main(String args[])
{int c[]=new int[100];
int jinwei=0;
int k=0;
int d=0;
int m=0;
//LinkedList stack=new LinkedList();
ArrayList list=new ArrayList();
int a[]={5,4};
int b[]={3,4};
for(int i=a.length-1;i>=0;i--){
for(int j=b.length-1;j>=0;j--){
c[k]=b[i]*a[j];
k++;
}
}
for( k=0;k<a.length*b.length;k++)
{
System.out.print(c[k]+" ");
}
//for(int i=0;i<c.length;i++){
d=c[0];
int e=d;
while(d>10)
{
d=d/10;
jinwei=d;
}
m=e-(d*10);
list.add(m);
//}
d=c[1];
e=d;
while(d>10)
{
d=d/10;
jinwei=d;
}
m=e-(d*10);
list.add(m);System.out.println();
for(int i=0;i<c.length;i++)
System.out.println(d);System.out.print(m);}
}大家能不能看懂我的意思,就是把这两个数两两相乘算出来。把高位和低位分离,然后模仿笔算乘法,最后得出结果。不会做了。希望高手帮忙,ps:a数组和b数组的长度可以无限大
在src/java/math/目录下
public class BIG
{
public static void main(String[] args)
{
int [] a={9,9};
int [] b={2,9};
int [] c=new int[a.length+b.length];
int index=0;
for(index=0;index<c.length;index++)
{
c[index]=0;
}
for(index=b.length-1;index>=0;index--)
{
for(int j=a.length-1;j>=0;j--)
{
c[index+j+1]+=b[index]*a[j];
}
}
for(index=c.length-1;index>0;index--)
{
c[index-1]+=c[index]/10;
c[index]=c[index]%10;
}
for(index=c.length;index>0;index--)
System.out.println(c[index-1]);
}
}
public class BIG
{
public static void main(String[] args)
{
int [] a={9,9};
int [] b={1};
int [] c=new int[a.length+b.length];
int index=0;
for(index=0;index<c.length;index++)
{
c[index]=0;
}
for(index=b.length-1;index>=0;index--)
{
for(int j=a.length-1;j>=0;j--)
{
c[index+j+1]+=b[index]*a[j];
}
}
for(index=c.length-1;index>0;index--)
{
c[index-1]+=c[index]/10;
c[index]=c[index]%10;
}
boolean start=false;
for(index=0;index<c.length;index++)
{
if(c[index]!=0)
start=true;
if(start)
System.out.print(c[index]);
}
}
}
c[index+j+1]+=b[index]*a[j];b数组的index是什么意思
这个for循环又是什么意思
for(index=c.length-1;index>0;index--)
{
c[index-1]+=c[index]/10;
c[index]=c[index]%10;
}
我知道c[index-1]+=c[index]/10;是把高位分离,可是分离以后又是怎么实现进位的,没弄明白,希望指教。谢谢
{
c[index+j+1]+=b[index]*a[j];
}
这段代码的意思我明白,可是还没明白具体的实现过程
比如我想做12*12
按照我的理解,c数组中应该存入的是2*2,2*1,1*2,1*1;可我把c数组输出的结果却不是这样
a=9,9
b=1,9
c=0,9,90,81
然后....
for(index=c.length-1;index>0;index--)
{
c[index-1]+=c[index]/10;
c[index]=c[index]%10;
}
比如说当index=3的时候...执行完以后c=0,9,98,1
index=2.................c=0,18,8,1
index=1.................c=1,8,8,1
自己理解下
b=1,9
c=0,9,90,81
就是没明白这个是什么意思,还有。 index=2.................c=0,18,8,1
index=1.................c=1,8,8,1
index=2的时候那个18是怎么出来的。
发表于:2008-03-28 15:13:397楼 得分:0
a=9,9
b=1,9
c=0,9,90,81
就是没明白这个是什么意思,还有。 index=2.................c=0,18,8,1
index=1.................c=1,8,8,1
index=2的时候那个18是怎么出来的。