如果a或b不是不是正整数,则函数返回-1。
主程序样例:
这里给出主函数及对Gcd函数的调用样例:
#include <stdio.h>
int Gcd(int a, int b);
int main()
{
int a, b, c;
scanf(“%d %d”, &a, &b);
c = Gcd(a,b);
if (c != -1)
{
printf(“%d\n”, c);
}
else
{
printf(“Input Data error!\n”);
}
return 0;
}
/* 请在这里完成 Gcd 函数*/
输入样例:
在这里给出一组输入。例如:
15 20
输出样例:
在这里给出相应的输出。例如:
5
solution
#include <stdio.h>
int Gcd(int a, int b);
int main()
{
int a, b, c;
scanf("%d %d", &a, &b);
c = Gcd(a,b);
if (c != -1)
{
printf("%d\n", c);
}
else
{
printf("Input Data error!\n");
}
return 0;
}
/* 请在这里完成 Gcd 函数*/
int Gcd(int a, int b){
if(a <= 0 || b <= 0) return -1;//忽略输入为正整数的判断会导致测试点3,4不过
if(a == b) return a;
else if(a > b) return Gcd(a-b, b);
else return Gcd(a, b - a);
}