第二次训练题第三题

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;
}

猜你喜欢

转载自blog.csdn.net/weixin_43508349/article/details/84975429
今日推荐