整除的尾数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 18689 Accepted Submission(s): 7896
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
#include<iostream> using namespace std; int main(){ int a,b; while(cin>>a>>b && a!=0 && b!=0){ int flag=1; for(int i=0;i<=99;i++) { if((a*100+i)%b==0){ if(i>=0&&i<=9){ if(flag){ cout<<"0"<<i; flag=0; } else cout<<" "<<i; } else { if(flag){ cout<<i; flag=0; } else cout<<" "<<i; } } } cout<<endl; } }
第一种AC代码很乱。
下边思路是:使用数组存储每一个满足条件的数。记住数组要用memset 来初始化。
还有就是最后一个输出数没有空格。可以当一输出。
#include<iostream> using namespace std; int main(){ int a,b; int v[100]; while(cin>>a>>b&&(a||b)){ int cont=0; memset(v,0,sizeof(v)); for(int i=0;i<=99;i++){ if((i+a*100)%b==0){ v[cont++]=i; } } for( i=0;i<cont-1;i++){ if(v[i]<10) cout<<"0"; cout<<v[i]<<" "; } if(v[cont-1]<10) cout<<"0"; cout<<v[cont-1]<<endl; } }
使用数组来保存数据,。