题目描述
一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢
输入
输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束
输出
对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。
思路:
首先先输入一个数的前几位,就是a值,然后输入b,就是被除数。让a*100,再从i=0,因为求的是末两位,所以直到i<100为止即可,遍历每个数看是否能整除b,能整除的输出即可。
注意:
有些特殊值在i=0时就可以整除,因此我们添加一个判断语句if(i/10==0),如果判断成功就在i前面在输出一个0,这样就保证是末两位了。
代码:
#include <iostream>
using namespace std;
int main()
{
int i = 0;
int a, b;
while (cin >> a >> b)
{
if (a == 0 && b == 0)
break;
for (int i = 0; i < 100; i++)
{
if ((a * 100 + i) % b == 0) //乘100后判断是否能整除b
{
if (i / 10 == 0) //要注意当i=0时就可以整除的情况
cout << "0" << i << " ";
else
cout << i << " ";
}
}
cout << endl;
}
return 0;
}