颠倒数字相加

来源:互联网 发布:淘宝旧版本4.1.0.1 编辑:程序博客网 时间:2024/04/28 11:52

 昨天刚参加完华为的实习招聘的机试题   自己水平有限  没有做出来  私下想了许久  对其中的第二道题进行研究   



题目如下:  输入两个整数   将两个数的各位数字颠倒  并且相加   若数字的首位为零  则去掉  

例输入:8  210

输出  : 20

实现程序如下:

#include<stdio.h>
#include<stdlib.h>
int fanzhuan(int x);
int fanzhuan(int x)
{
int i = 0, j = 0, w = 0;
int z = x;
int a[10] = { 0 };
while (x)
{
x = x / 10;
i++;
}
x = z;
for (j = 0; j<i; j++)
{
a[j] = x % 10;
x = x / 10;
}
while (!a[0])
{
for (j = 0; j<i; j++)
{ a[j] = a[j + 1]; }
i = i - 1;
}
for (j = 0; j<i; j++)
{
w = w * 10 + a[j];
}
return w;
}
int main()
{
int a1, a2;
scanf_s("%d %d",&a1,&a2);
int b1 = fanzhuan(a1);
int b2 = fanzhuan(a2);
int b = b1 + b2;
printf("%d\n", b);
system("pause");
return 0;
}


由于实践验证  其中while语句判断首字母为0部分可以直接去掉,因为若首项为0  乘以w也没有作用效果


0 0
原创粉丝点击