一个函数题,就是过不了,是不是哪里什么没考虑到,求大神们指点
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; }