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
Source
2007省赛集训队练习赛(2)
代码区:
#include <stdio.h>
#include <iostream>
using namespace std;
int main()
{
int a,b,n,f;
while(~scanf("%d%d",&a,&b),a||b)//当两个都为0时不进入循环
{
f=0;//标记变量,实现每一个数第一个输出后不加空格,之后加空格
for(int i=a*100/b;i<=(a*100+99)/b;i++)
//a*100是将a后面填两个0,/b后变成能被b整除的最小数,+99以后是能被b整除的最大数
if(b*i>=a*100&&b*i<=a*100+99)//当满足这个条件时
{
n=b*i-a*100;//n为原数/b的余数
if(f)//当f为1时,输出一个空格
printf(" ");
f=1;//标记需要加空格
if(n<10)//当余数为一位数的时候
printf("0%d",n);//输出0来补充位数
else
printf("%d",n);//两位数就直接输出
}
cout << endl;
}
}
新手上路,有错请指正。