Problem Description
一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢?
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
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2099
问题简述:输入一个没有末两位的整数A,求输出能被另外一个整数B整除的尾数
问题分析:取尾数用%,然后循环可以判断每一个尾数是否符合,如果符合就将其放进一个数组中,最后按格式循环输入。
程序说明:将整数A放大一百倍,用for循环实验每个尾数是否符合题意,如果符合就放进x[1000]中,最后for循环输出,根据题意最后一个尾数后不加空格而是要回车,所以在最后加一个if来判断。
AC通过的C++程序如下:
#include<iostream>
using namespace std;
int main()
{
int x[1000];
int a, b, c,d,e,f;
while (scanf("%d %d", &a, &b))
{
if (a != 0 && b != 0)
{
a = a * 100;
c = a + 100;
for (d = 0, e = 1; a != c; a++)
{
if (a%b == 0)
{
x[d] = a % 10;
x[e] = a / 10 % 10;
d = d + 2; e = e + 2;
}
}
f = d;
for (d = 0, e = 1; d != f; d = d + 2, e = e + 2)
{
if (d != f - 2)
printf("%d%d ", x[e], x[d]);
else printf("%d%d\n", x[e], x[d]);
}
}
else break;
}
return 0;
}