1. 程式人生 > >A + Reverse B(水題一發)

A + Reverse B(水題一發)

You are given numbers a and b. Calculate the sum of a and reverse of b. A reverse of a number is a number which contains the same digits in reverse order. For example, reverse of 230 is 32, and reverse of 0 is 0.

Input
The input contains two integers a and b (0 ≤ a, b ≤ 109), separated by a single space. The numbers are given without leading zeros.

Output
Output the sum of a and reverse of b.

Examples
Input
5 15
Output
56
Input
73 9180
Output
892

這種題在進入演算法協會的時候有過這種題,這種題目思路很多,倒置數字會出現前置零的問題也有很多方法解決。程式碼給上:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define ll long long
using namespace std;

int a[10];
int b[10];
ll n,m;

int main()
{
	while(scanf("%d%d",&n,&m)!=EOF)
	{
		memset(a,0,sizeof(a));
		memset(b,0,sizeof(b));
		int cnt1=0;
		int cnt2=0;
		int flag1=1;
		int flag2=1;
		int sum1=0;
		int sum2=0;
		while(m)
		{
			int x=m%10;
			if(x==0&&flag2)//這個flag2就是從第一個非零數開始存入陣列。
			m/=10;
			else 
			{
				flag2=0;
				b[cnt2++]=m%10;
				m/=10;
			}
		}
		ll yy=b[0];
		for(int i=1;i<cnt2;i++)
		{
			yy=yy*10+b[i];
		}
		printf("%lld\n",n+yy);
	}
	return 0;
}

努力加油a啊,(o)/~