一个函数题,就是过不了,是不是哪里什么没考虑到,求大神们指点
Description 题目描述
求方程 (x+a)/(x+b) = c的非负整数根,其中a,b,c都是非负整数。
输入
第一行是一个整数K,表示样例的个数(K≤30000)。以后的K行每行为以一个样例,包含三个非负整数a,b,c (a,b,c ≤ 109)。
输出
每行输出一个样例的结果。如果方程没有根,输出“None”,否则输出根的值,如果存在多个根,输出最小的那个。
程序代码:#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
__int64 a,b,c,y;
scanf("%d",&n);
while (n--)
{
scanf("%I64d %I64d %I64d",&a,&b,&c);
if (c==0)
{
if (a==0&&b!=0)printf("0\n");
else printf("None\n");
continue;
}
if (c==1)
{
if (b==a&&a!=0) printf("0\n");
else printf("None\n");
continue;
}
y = (b*c-a)/(1-c);
if (y<0&&((b*c-a)%(1-c)!=0)) printf("None\n");
else printf("%I64d\n",y);
}
return 0;
}









