水题--整除的尾数

题目描述

一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢

输入

输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束

输出

对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。

样例输入
200 40
1992 95
0 0
样例输出
00 40 80
15

解题思路:首先对于题目描述,数据不够大,可以直接将a扩大100倍,然后此时我们进行判断,判断a是否是b的倍数,如果是就直接输出00,不是,我们就计算100*a与b的倍数之间的差值,然后将a变成b的倍数,并且输出此时a的后两位数字,注意输出格式为%.2d,进而进入循环,

跳出循环的条件为是否回到重复点,或者此时后面已经超出两位数

#include
int main(){
	int N;
	int a,b;
	while(scanf("%d%d",&a,&b)){
		if(a==0&&b==0)
			return 0;
		a=a*100;
		int i;
		int k=b-a%b;
		if(k==b)
			printf("00 ");
		a=a+k;
		int x=a%100;
		printf("%.2d",x);
		a=a+b;int count=1;
		while(1){
			if(a%100==k||(b*(count)+k)>=100)
				break;
			else
				printf(" %.d",a%100);
			count++;
			a=a+b;
		} 
		printf("\n");
	}
}

你可能感兴趣的:(c语言)