一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
Input
输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束。
Output
对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。Sample Input
200 40
1992 95
0 0
Sample Output
00 40 80
15
未优化
#include <stdio.h>
int main()
{
int a,b,i;
int n = 0;
while (scanf("%d %d", &a, &b)!=EOF) {
n = 0;
if(a==0 && b==0){
break;
}
for (i = 0; i < 100; ++i) {
if ((a * 100 + i) % b == 0) {
if(n!=0){
printf(" ");
}
printf("%02d", i);
n = 1;
}
}
printf("\n");
}
return 0;
}
已优化
#include<stdio.h>
int main()
{
int a,b;
int k,num,s,n;
while(scanf("%d %d",&a,&b)!=EOF){
if(a==0 && b==0){
break;
}
num = a * 100;
n = 1; //要记得重新让n = 1
if(num%b==0){
s = 0;
}
else{
k = num / b;
s = (k+1) * b - num;
}
while(1){
if(s>=100){
break;
}
else{
if(n!=1){
printf(" ");
}
printf("%02d",s);
}
s = s + b;
n++;
}
printf("\n");
}
return 0;
}