魔幻数字47 (简单题目,细节比较多)

1、http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=1576&cid=1199

2、注意n>m时取小值即可,大于m的n的阶乘再模余m等于0,注意a>b,ab取负数

3、题目:

魔幻数字47

Time Limit: 1000MS    Memory limit: 32768K

题目描述

数字47一向被数学界的人认为是很魔幻的一个数字,和47有关的任务被认为是魔幻任务。现在有一个简单的魔幻任务,给定a和b,打印所有在 以a,b为端点的闭区间 中最后两位为47的整数,你能一次AC吗??

输入

第一行为一个整数n,表示有多少组测试数据。(n <= 100)
第2-n+1行,每行两个整数,分别代表a,b。(a,b <= 10000)

输出

对于每组输入,输出在以a,b为端点的闭区间内且最后两位为47的整数,如果有多个,则从小到大排序输出;若一个都没有,则输出NONE。

示例输入

2
1 147
1 2

示例输出

47
147
NONE

 

4/AC代码

#include<stdio.h>
int main()
{
    int t,a,b,i;
    int aa[105];
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d%d",&a,&b);
        if(a>b)
        {
            int d=a;
            a=b;
            b=d;
        }
        if(a>-47 && b<47)
        printf("NONE\n");
        else if(a<0)
        {
            i=0;
            int tmp=-47;
            aa[0]=-47;
            while(tmp>=a)
            {
                //printf("$$%d %d\n",tmp,a);
                if(tmp<=b)
                aa[++i]=tmp-100;
                tmp-=100;
            }
            if(aa[i]<a)
            i=i-1;
            for(int j=i;j>=0;j--)
            printf("%d\n",aa[j]);
            int c=47;
            while(c<=b)
            {
                if(c>=a)
                printf("%d\n",c);
                c+=100;
            }
        }
        else
        {
            int c=47;
            while(c<=b)
            {
                if(c>=a)
                printf("%d\n",c);
                c+=100;
            }
        }
    }
    return 0;
}
/*
9
47 144
0 3
47 47
-200 47
-300 -47
43 400
200 -200
*/


 

你可能感兴趣的:(魔幻数字47 (简单题目,细节比较多))