一道VC的编程题,大家来看看我写的有啥不当的地方没
来源:百度知道 编辑:UC知道 时间:2024/06/28 15:47:46
题目要求:(这个是某学校考研复试题目)
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)
位数字相同,请直接输出-1。
具体的输入输出格式规定如下:
输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数
字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
输出格式:对每个测试用例输出1行,即A+B的值或者是-1。
输入样例:
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
输出样例:
3
-1
-1
100
我的程序::
#include <iostream>
using namespace std;
#define N 10
int add(int A,int B,int k)
{
int c=1;
for(;k>=1;k--)
c=c*10;
if(A%c==B%c)
return -1;
else
return A+B;
}
int main()
{
int num[N][3]={0xfffff};
int i=0,j=0;
int a=0;
do
{
cin>>num[i][0]>>num[i][1]>>num[i][2];
i++;
}while(num[i-1][1]!=0&&num[i-1][0]!=0);
i-=2;
for(;j<=i;j++)
读入两个小于10000的正整数A和B,计算A+B。需要注意的是:如果A和B的末尾K(不超过8)
位数字相同,请直接输出-1。
具体的输入输出格式规定如下:
输入格式:测试输入包含若干测试用例,每个测试用例占一行,格式为"A B K",相邻两数
字有一个空格间隔。当A和B同时为0时输入结束,相应的结果不要输出。
输出格式:对每个测试用例输出1行,即A+B的值或者是-1。
输入样例:
1 2 1
11 21 1
108 8 2
36 64 3
0 0 1
输出样例:
3
-1
-1
100
我的程序::
#include <iostream>
using namespace std;
#define N 10
int add(int A,int B,int k)
{
int c=1;
for(;k>=1;k--)
c=c*10;
if(A%c==B%c)
return -1;
else
return A+B;
}
int main()
{
int num[N][3]={0xfffff};
int i=0,j=0;
int a=0;
do
{
cin>>num[i][0]>>num[i][1]>>num[i][2];
i++;
}while(num[i-1][1]!=0&&num[i-1][0]!=0);
i-=2;
for(;j<=i;j++)
#include <iostream>
#include <cmath>
using namespace std;
int main(void)
{
int A,B=-1,K;
while(1)
{
cin>>A>>B>>K;
if (A==0 && B==0) break;
cout<<(((A-B)%(int)pow(10,K))?A+B:-1)<<endl;
};
return 0;
}