整除的尾数
时间: 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;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。