Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1575000
  • 博文数量: 399
  • 博客积分: 8508
  • 博客等级: 中将
  • 技术积分: 5302
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 09:28
个人简介

能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。

文章分类

全部博文(399)

文章存档

2018年(3)

2017年(1)

2016年(1)

2015年(69)

2013年(14)

2012年(17)

2011年(12)

2010年(189)

2009年(93)

分类: LINUX

2010-02-01 15:22:23

short s1[40],s2[40],s[85];
//s1,s2表示出乘数,s表示结果,因为只表示十进制的一位,所以短整型就可以了
char line1[45],line2[45];    //输入的2行
gets(line1);
gets(line2)
for(i=l=strlen(line1)-1;i>=0;--i)
    s1[i] = line1[l-i]-'0';
for(i=l=strlen(line2)-1;i>=0;--i)
    s1[i] = line2[l-i]-'0';
//将字符数组转换为长的整数数组,注意顺序要反过来
j = strlen(line1)+strlen(line2);        //乘积的长度是两个乘数长度的和
for(i=0;i<85;++i)
    s[i] = 0;            //结果初始化,为乘法准备
for(i=0;i    for(k=0;k        s[i+k]+=s1[i]*s2[k];    //按位相乘,结果加到对应位
for(i=0,c=0;i<85;++i)
{
    k=s[i]+c;
    s[i]=k%10;
    c=k/10;                //处理进位
}
阅读(2979) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~