整除的尾数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27646 Accepted Submission(s): 11717
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
Source
#include <iostream>
using namespace std;
int main()
{
int a, b;
while (cin >> a>>b)
{
int c[1000], j=0;
if (a==0 && b==0)
return 0;
for (int i=0; i<=99; i++)
{
if ((100*a +i) % b ==0)
{
c[j] = i;
j++;
}
}
for (int i=0; i<j-1; i++)
{
if (c[i] >=0 &&c[i]<= 9)
cout <<0 <<c[i] << " ";
else
cout <<c[i] <<" ";
}
if(c[j-1] >=0 && c[j-1] <=9)
cout <<0 << c[j-1] << endl;
else
cout <<c[j-1]<< endl;
}
return 0;
}
以下代码是我在discuss里面看到的,比较优秀
#include<stdio.h>
int main()
{
int n,b,i,a[100],j;
while(scanf("%d%d",&n,&b),n||b)
{
j=0;
for(i=0;i<100;i++)
{
if((n*100+i)%b==0)
a[j++]=i;
}
for(i=0;i<j-1;i++)
printf("%02d ",a[i]);
printf("%02d\n",a[j-1]);
}
}
对于printf("%02d");解释如下:
printf("%02d",2); printf打印数据到屏幕上,这是C的函数。类似C++的cout<<语句。 %d表示打印整型的, %2d表示把整型数据打印最低两位, %02d表示把整型数据打印最低两位,如果不足两位,用0补齐 所以打印出来就是02了