您的位置:首页 > 其它

POJ 1504 (一个水题引发的血案)

2014-08-25 16:56 429 查看
【题意简述】:给你两个数,将两个数反转加和,得到的结果再次反转,输出即可

代码:

1、&&

#include<iostream>
using namespace std;
int fan(int n)
{
long int sum=0;
while(n!=0)
{
sum=sum*10+n%10;
n/=10;
}
return sum;
}
int main()
{
int t,a,b;
cin>>t;
while(t--)
{
cin>>a>>b;
cout<<fan(fan(a)+fan(b))<<endl;
}
return 0;
}


2、
#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;
}


3、垃圾代码:

#include<iostream>
#include<cmath>
using namespace std;
int len(int i)
{
int count = 0;
int tmp;
bool flag = true;
while(i!=0)
{
tmp = i%10;
i = i/10;
if(tmp!=0||!flag)
count++;
if(count)
flag = false;
}
return count;
}
int main()
{
int t;
int a,b;
cin>>t;
while(t--)
{
cin>>a>>b;
bool flag = true;
int len1 = len(a);
int len2 = len(b);
int tmp;
int x = 0;
int y = 0;
int count = 0;
while(a!=0)
{
tmp = a%10;
a = a/10;
x+=tmp*pow(10.0,len1-1);
len1--;
}
while(b!=0)
{
tmp = b%10;
b = b/10;
y+=tmp*pow(10.0,len2-1);
len2--;
}
int ans = x+y;
while(ans!=0)
{
tmp = ans%10;
ans = ans/10;
if(tmp!=0||!flag)
{
cout<<tmp;
count ++;
}
if(count)
flag = false;
}
cout<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: