1054 - 猜数字
时间限制 : 1 秒
内存限制 : 32 MB
现在,我想让你猜一个数字x(1000<=x<=9999),它满足以下要求:
(1)x % a = 0;
(2)(x+1) % b = 0;
(3)(x+2) % c = 0;
其中1<=a,b,c<=100。
给你a,b,c的值,你能告诉我x是多少吗?
题目输入
输入的第一行为c,表示测试样例的个数。接下来的c行每行包括a,b,c三个整数。
题目输出
对于每一个测试样例,输出所求的x,如果x不存在,则输出Impossible。
输入/输出样例
输入格式
2 44 38 49 25 56 3
输出格式
Impossible 2575
C语言解答
#include<stdio.h> int main() { int n,a,b,c,i; scanf("%d",&n); while(n--) { scanf("%d%d%d",&a,&b,&c); for(i=1000;i<=9999;i++) if(i%a==0&&(i+1)%b==0&&(i+2)%c==0) break; printf(i>9999?"Impossible\n":"%d\n",i); } return 0; }
C++解答
#include<stdio.h> int main() { int n,a,b,c,i; scanf("%d",&n); while(n--) { scanf("%d%d%d",&a,&b,&c); for(i=1000;i<=9999;i++) if(i%a==0&&(i+1)%b==0&&(i+2)%c==0) break; printf(i>9999?"Impossible\n":"%d\n",i); } return 0; }
Java解答
import java.util.*; class Main { public static void main(String[] args) { Scanner in = new Scanner (System.in); int a = in.nextInt(); for(int i = 0;i<a;i++) { int b,c,d; b = in.nextInt(); c = in.nextInt(); d = in.nextInt(); for(int x = 1000;x<10000;x++) { if(x%b==0 && (x+1)%c==0 && (x+2)%d==0) { System.out.println(x); break; } if((x%b!=0 || (x+1)%c!=0 || (x+2)%d!=0) && x==9999) System.out.println("Impossible"); } } } }
Python解答
# coding=utf-8 n=int(input()) for i in range(n): a,b,c=map(int,input().split()) t=0 for j in range(1000,10000): if j%a==0 and (j+1)%b==0 and (j+2)%c==0: print(j) t=1 break if t==0: print("Impossible")