整除的尾数

时间: 1ms        内存:128M

描述:

一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢? 

输入:

输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束。 

输出:

对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。 

示例输入:

200 40
1992 95
0 0

示例输出:

00 40 80
15

提示:

参考答案(内存最优[1120]):

#include<cstdio>
#include<cstring>
int ans[105];
int main()
{
    int a,b;
    while(~scanf("%d %d",&a,&b) && a && b)
    {
        memset(ans,0,sizeof(ans));
        int tmp = a*100;
        int k = 0;
        for(int i=0;i<100;i++)
        {
            int res = tmp+i;
            if(res%b == 0) ans[k++] = i;
        }
        for(int i=0;i<k;i++) printf("%02d ",ans[i]);
        printf("\n");
    }
    return 0;
}

参考答案(时间最优[1]):

#include<stdio.h>
int main()
{
int a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
if(a==0&&b==0)
break;
int i,j,l=0;
for(i=a*10*10;i<=a*10*10+99;i++)
{
if(i%b==0)
l++;
}
l=l-1;
for(i=a*10*10;i<=a*10*10+99;i++)
{
if(i%b==0)
{
    if(i-a*10*10==0)
        printf("00");
        else
            if(i-a*10*10<10&&i-a*10*10>0)
        {
            printf("0");
            printf("%d",i-a*10*10);
        }
    else
printf("%d",i-a*10*10);
if(l>=0)
{printf(" ");
l--;}
}
}
printf("\n");
}
return 0;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。