1054 - 猜数字

通过次数

0

提交次数

0

时间限制 : 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")