第2题
问题描述:
请您写一个reverseAdd函数, 该函数根据输入的两个正整数a和b, 然后分别将它们的数字按照高位在右边的方式反转后求和。
例如,reverseAdd(123, 456) == 321 + 654 == 975
程序原型:
C/C++ int reverseAdd (int a, int b);
Java public class Exam{
public static int reverseAdd(int a, int b)
{ … }
}
输入:
输入的a,b参数均为有效取值范围[1, 70000]区间上的正整数。
输出:
通过函数返回值输出结果。
若输入的a或b参数超出了取值范围(小于1或者大于70000),则应输出-1;
否则应按照要求输出数字反转后的和。
注意:最终交付的函数代码中不要向控制台打印输出任何信息。
举例:
输入 输出 说明
123, 456 975 123反转为321 456反转为654结果为 321 + 654 = 975
0, 123 -1 输入错误,0超出了取值范围,返回-1
80000, 123 -1 输入错误,80000超出了取值范围,返回-1
100, 200 3 100和200反转后的值为1和2(前导0被忽略)
1, 2 3 单个数字反转后不变
回答的模板,请另存为.c文件,在里面做答
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int reverseAdd (int a, int b)
{
return -1; // remove this line please
// your code here...
}
/* NOTE! Please DO NOT change main()!!! */
// Usage Example: test12 123 456
int main(int argc, char *argv[])
{
int a, b, result;
// check argument number
if (argc != 3)
{
printf("Usage: test12 123 456\n");
return -1;
}
// first argument should be a
a = atoi(argv[1]);
// second argument should be b
b = atoi(argv[2]);
// call your function
result = reverseAdd (a, b);
// print result
printf("%d\n", result);
return 0;
}