| 翻转数就是把一个数的所有数字以相反顺序写出来,即原来的第一个数字成为最后一个,而原来的最后一个则成为第一个。我们把未翻转的数称为翻转数的原数。例如:6789的翻转数是9876,而6789就是9876的原数。 | |||
| 输入 (请使用标准输入输出,而不要读写文件) | |||
| 输入包含两个整数A、B,两数中间以空格分隔,0<A<100 000 000,0<B<100 000 000。 | |||
| 输出 (请使用标准输入输出,而不要读写文件) | |||
| 输出只有一个整数,即为 S 的翻转数。 | |||
|
| |||
样例输入1 | 样例输出1 | 样例输入2 | 样例输出2 | |
304 795 | 1 | 9 134855 | 44855 | |
#include<stdio.h>
//球翻转数的原数
long FormerlyNumber( long lReversal )
{
int i = 0 , j = 10 , k = 0 , l = 1;
int iDight = 0 ;//位数
long lFormerlyNumber = 0;
int c[9]; //保存各位的数字
for ( i = 0 ; i < 9 ; i++)
{
c[i] = 0;
}
//求位数
for( i=1; ; i=i*10 )
{
if( lReversal/i==0 )
break;
iDight++;
}
//求原数的每各位的数字
for( i=1; i <= iDight ; i++, j=j*10, l=l*10)
c[k++]=(lReversal%j)/l;
//求原数
for( i=iDight-1,j=1; i >= 0 ; i--, j=j*10 )
lFormerlyNumber = lFormerlyNumber + c[i] * j ;
return lFormerlyNumber;
}
void main()
{
long lA = 0, lB = 0 ; //输入的翻转数
long lFormerlyA =0, lFormerlyB = 0 ; //原数
long lSum = 0 , lFormerlySum=0; //原数的和及和的翻转数
printf("请输入两个翻转数lA,lB/n");
scanf("%ld %ld",&lA,&lB);
lFormerlyA = FormerlyNumber( lA );
lFormerlyB = FormerlyNumber( lB );
lFormerlySum = FormerlyNumber( lFormerlyA + lFormerlyB ) ;
printf("%ld/n",lFormerlySum);
}