POJ 1504,ZOJ 2001,UVA 713, Adding Reversed Numbers,错误,已找到错误
------------------------------------------------------------
以此题警告自己:
总结,
1.在数组的使用时,一定别忘了初始化
2.在两种情况复制代码时,一定要小心,注意修改变量名,一不留神就会带来不可估量的后果,一定要仔细挨着一个一个变量的修改,别跳着看着哪个变量就改哪一个变量!
(这个题目中,就是复制了一下,代码,ca,我找了一下午的错。。。。还好终于找到了,一个字母的错,)
-----------------------------------------------------------
//正确,已改正 #include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
char a[1000];
char b[1000];
int main()
{
int n;
int i;
int j;
int co;
int la,lb,lc;
cin>>n;
while(n--)
{
memset(a,0,sizeof(a));//此处注意初始化!!!
memset(b,0,sizeof(b));//此处注意初始化!!! cin>>a; cin>>b; co=0;
la=strlen(a);
lb=strlen(b);
if(la>lb)
{
for(i=0;i<lb;i++)
{
a[i]='0'+(a[i]-'0')+(b[i]-'0')+co;
if(a[i]>'9')
{
a[i]=a[i]-10;
co=1;
}
else
co=0;
}
for(i=lb;i<la;i++)
{
a[i]=a[i]+co;
if(a[i]>'9')
{
a[i]=a[i]-10;
co=1;
}
else
co=0;
}
a[la]='0'+co;
la=strlen(a); for(i=la-1;i>=0;i--)
{
if(a[i]!='0')
break;
a[i]='\0';
}
if(i==-1) cout<<0<<endl;//此题可以不必考虑0的情况,也可通过// -----------(另外 此处 输出的整数 0 也可以是 字符 '0' )
else
{
for(i=0;i<la;i++)
{
if(a[i]!='0')
break;
} for(;a[i];i++)
{
if(a[i]!='\0')
cout<<a[i]-'0';// -----------( 另外 此处 输出的整数 a[i]-'0' 也可以是 直接输出 字符 a[i] )
}
cout<<endl;
}
}
else
{
for(i=0;i<la;i++)
{
b[i]='0'+(b[i]-'0')+(a[i]-'0')+co;
if(b[i]>'9')
{
b[i]=b[i]-10;
co=1;
}
else
co=0;
}
for(i=la;i<lb;i++)
{
b[i]=b[i]+co;
if(b[i]>'9')// //// 就在这!!!错了一个字母,正确应该是b[i],原来是a[i] ,所以错了 !!是 复制的时候 没有 完全把 变量名 改完 ,。
{
b[i]=b[i]-10;
co=1;
}
else
co=0;
}
b[lb]='0'+co;
lb=strlen(b); for(i=lb-1;i>=0;i--)
{
if(b[i]!='0')
break;
b[i]='\0';
}
if(i==-1) cout<<0<<endl;//此题可以不必考虑0的情况,也可通过// -----------(另外 此处 输出的整数 0 也可以是 字符 '0' )
else
{
for(i=0;i<lb;i++)
{
if(b[i]!='0')
break;
}
for(;b[i];i++)
{
if(b[i]!='\0')
cout<<b[i]-'0';// -----------( 另外 此处 输出的整数 a[i]-'0' 也可以是 直接输出 字符 a[i] )
}
cout<<endl;
}
}
}
return 0;
}
---------------------------------------------------------
此题目 不包括
002 1
的情况,
就是 没有 前置 0 的情况 ,因此可以不必考虑
---------------------------------------------------------
//以下代码为 网上代码,函数有待研究
-------------------------------------
//函数有待研究 #include<iostream>
#include<algorithm>
using namespace std; int main(void)
{
int t;
scanf("%d",&t);
while(t--)
{
int a,b;
char s1[13],s2[13];
scanf("%d%d",&a,&b);
sprintf(s1,"%d",a);
sprintf(s2,"%d",b);
reverse(s1,s1+strlen(s1));
reverse(s2,s2+strlen(s2));
sscanf(s1,"%d",&a);
sscanf(s2,"%d",&b);
sprintf(s1,"%d",a+b);
reverse(s1,s1+strlen(s1));
sscanf(s1,"%d",&a);
printf("%d\n",a);
}
return 0;
}
POJ 1504,ZOJ 2001,UVA 713, Adding Reversed Numbers,错误,已找到错误的更多相关文章
- zoj 2001 Adding Reversed Numbers
Adding Reversed Numbers Time Limit: 2 Seconds Memory Limit: 65536 KB The Antique Comedians of M ...
- zoj2001 Adding Reversed Numbers
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2001 Adding Reversed Numbers Time ...
- ACM Adding Reversed Numbers(summer2017)
The Antique Comedians of Malidinesia prefer comedies to tragedies. Unfortunately, most of the ancien ...
- poj1504 Adding Reversed Numbers
Adding Reversed Numbers Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 17993 Accepted: 9 ...
- POJ 1504 Adding Reversed Numbers (水题,高精度整数加法)
题意:给两个整数,求这两个数的反向数的和的反向数,和的末尾若为0,反向后则舍去即可.即若1200,反向数为21.题目给出的数据的末尾不会出现0,但是他们的和的末尾可能会出现0. #include &l ...
- POJ 1504 Adding Reversed Numbers
/*Sample Input 3 24 1 4358 754 305 Sample Output 34 1998 */ 值得总结的几点就是: 1.atoi函数将字符串转化为整型数字(类似于强制转换) ...
- Poj 1504 Adding Reversed Numbers(用字符串反转数字)
一.题目大意 反转两个数字并相加,所得结果崽反转.反转规则:如果数字后面有0则反转后前面不留0. 二.题解 反转操作利用new StringBuffer(s).reverse().toString() ...
- POJ 2225 / ZOJ 1438 / UVA 1438 Asteroids --三维凸包,求多面体重心
题意: 两个凸多面体,可以任意摆放,最多贴着,问他们重心的最短距离. 解法: 由于给出的是凸多面体,先构出两个三维凸包,再求其重心,求重心仿照求三角形重心的方式,然后再求两个多面体的重心到每个多面体的 ...
- POJ 1903 & ZOJ 2469 & UVA 1326 Jurassic Remains (部分枚举)
题意:给定n个只有大写字母组成的字符串,选取尽可能多的字符串,使得这些字符串中每个字母的个数都是偶数.n<=24 思路:直接枚举每个字符串的选或不选,复杂度是O(2^n).其实还有更简便的方法. ...
随机推荐
- Linux中终端和控制台区别
Linux中终端和控制台区别: 终端:英文名叫terminal 控制台:英文名叫console 两者区别要从以前的多人使用的计算机开始 以前,由于计算机很昂贵,所用一台计算机一般由多个人同时使用.这样 ...
- 使用javac,手动编译一个java文件的方法
参考<Tomcat与Java Web开发技术详解>中的命令: javac -classpath c:\tomcat\lib\servlet-api.jar ...
- 在Windows 10中开启开发者模式
及以上)的电脑上使用Visual Studio来开发Windows 10或者Windows 8.1的应用,你可能会遇到下面的问题,要求你开启开发者模式. 于是你跑到设置里面,把开发者模式打开: 结果你 ...
- git入门三(远程、标签)
git 入门三 (远程.标签) 分布式版本控制管理系统本地仓库和中心服务器仓库数据是本地的镜像仓库,中心服务器数据仓库的是为了多用户数据合并和获取同步的中心,多人协作需要管理这些远程仓库,以便 ...
- 【BZOJ3510】首都 LCT维护子树信息+启发式合并
[BZOJ3510]首都 Description 在X星球上有N个国家,每个国家占据着X星球的一座城市.由于国家之间是敌对关系,所以不同国家的两个城市是不会有公路相连的. X星球上战乱频发,如果A国打 ...
- 开始翻译《Beginning SharePoint 2013 Development》
伙同涂曙光@kaneboy 和柴晓伟@WindieChai 翻译Beginning SharePoint 2013 Development 作者是Steve Fox,传说中的Andrew Connel ...
- 解决Eclipse的Team菜单中没有SVN选项的问题
我们想使用SVN向SVN服务器上传代码,但Eclipse默认情况下却没有SVN选项,如下图所示. 默认只有GIT,如下图所示. 那么,我们怎么解决这个问题呢? 第一步:如下图所示. 第二步:在&quo ...
- inux c编程:读写锁
前面介绍的互斥量加锁要么是锁状态,要么就是不加锁状态.而且只有一次只有一个线程可以对其加锁.这样的目的是为了防止变量被不同的线程修改.但是如果有线程只是想读而不会去写的话,这有不会导致变量被修改.但是 ...
- python数据分析之:数据聚合与分组运算
在数据库中,我们可以对数据进行分类,聚合运算.例如groupby操作.在pandas中同样也有类似的功能.通过这些聚合,分组操作,我们可以很容易的对数据进行转换,清洗,运算.比如如下图,首先通过不同的 ...
- Spring 拦截器——HandlerInterceptor
采用Spring拦截器的方式进行业务处理.HandlerInterceptor拦截器常见的用途有: 1.日志记录:记录请求信息的日志,以便进行信息监控.信息统计.计算PV(Page View)等. 2 ...