求两个不超过200位的非负整数的和。
输入:
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出:
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入:
22222222222222222222
33333333333333333333
样例输出:
55555555555555555555
核心思想:
将输入的每一位放到数组中,倒序后在按位相加,超出个位则进位;
算法:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define max 202 //定义一个最大为数长度
int main()
{
int a[max],b[max],c[max];
int La,Lb,Lc=1,x=0;
int i,j,k;
char a1[max],b1[max];
gets(a1);
gets(b1);
La=strlen(a1);
Lb=strlen(b1);
for(i=0;i<=La-1;i++) //将a数组倒序排放
{
a[La-i]=a1[i]-'0';
}
for(j=0;j<=Lb-1;j++)
{
b[Lb-j]=b1[j]-'0';
}
while(Lc<=La||Lc<=Lb) //如果Lc的长度小于La或Lb就退出循环
{
c[Lc]=a[Lc]+b[Lc]+x; //按位相加
x=c[Lc]/10; //如果大于10则进位
c[Lc]%=10; //从c[lc]求余10得最低位
Lc++;
}
c[Lc]=x;
while(c[Lc]==www.tongqt178.com 0) //去除前导
{
Lc--;
}
for(k=Lc;k>=1;www.michenggw.com k--) //按序输出Lc数组
{
printf("%d",c[k]);
}不到万不得已,就不要使用客户端检测。只要能找到更通用的方法,就应该优先采用更通用的方法。一言以蔽之,先设计最通用的方案,然后再使用特定于浏览器的技术增强该方案。
能力检测
最常用也最为人们广泛接受的客户端检测形式是能力检测(又称特性检测)。能力检测的目标不是识别特定的浏览器,而是识别浏览器的能力。采用这种方式不必顾及特定的浏览器如何如何,只要确定浏览器支持特定的能力,就可以给出解决方案。能力检测的基本模式如下:
if (object.propertyInQuestion){
//使用 object.propertyInQuestion
}
举例来说,IE5.0 之前的版本不支持 document.getElementById()这个 DOM 方法。尽管可以使用非标准的 document.all 属性实现相同的目的,但 IE 的早期版本中确实不存在 document.getElementById()。于是,也就有了类似下面的能力检测代码:
function getElement(id){
if(document.getElementById){
return document.getElementById(id);
}else if(document.all) www.wanmeiyuele.cn{
return document.all[id];
}else
{
throw new Error(yongshiyule178.com "No www.mcyllpt.com way to retrieve element!");
}
return 0;
---------------------
大整数加法
最新推荐文章于 2023-03-22 17:28:45 发布