XTU-oj-循环2-root

题目描述

求方程 (x+a)/(x+b) = c的非负整数根,其中a,b,c都是非负整数
输入:第一行是一个整数K,表示样例的个数(K≤30000)。以后的K行每行为以一个样例,包含三个非负整数a,b,c (a,b,c ≤ 10^9)。
输出: 每行输出一个样例的结果。如果方程没有根,输出“None”,否则输出根的值,如果存在多个根,输出最小的那个。
Sample Input
3
1 1 1

1 1 2

3 1 2
Sample Output
0
None

1

解题思路

考虑全a,b,c的一些特殊取值即可。

AC代码:

  #include<stdio.h>
  int main(){
    	int k;
    	scanf("%d",&k);
    	int a,b,c;
    	int x,y;
    	while(k--){
    		scanf("%d%d%d",&a,&b,&c);
    		if(b!=0&&c!=1) {
    		x=(a-b*c)/(c-1);
    		y=(a-b*c)%(c-1);
    		if(x>=0&&y==0) printf("%d\n",x);
    		else printf("None\n");
    		} 
    	    else if(c==1){
    			if(a==b&&b!=0) printf("0\n");
    			else if(a==b&&b==0) printf("1\n");
    			else printf("None\n");
    		}
    		else if(a==0) printf("None\n");
    		else 
            {  
                x=a/(c-1);
                y=a%(c-1);
                if(x>=0&&y==0)
                    printf("%d\n",x);
                    else printf("None\n");
            }		
    } 
    return 0;
    }

作者:qq_39322743
来源:CSDN
原文:https://blog.csdn.net/qq_39322743/article/details/78720133
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/ac1085589289/article/details/83655068