XTU-oj-迴圈2-root
阿新 • • 發佈:2018-12-19
題目描述
求方程 (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; }