河南单位网站建设,十大免费logo设计,北京丰台网站建设,网站运营的重要性Problem Description 一个整数#xff0c;只知道前几位#xff0c;不知道末二位#xff0c;被另一个整数除尽了#xff0c;那么该数的末二位该是什么呢#xff1f;
Input 输入数据有若干组#xff0c;每组数据包含二个整数a#xff0c;b#xff08;0 a10000…Problem Description 一个整数只知道前几位不知道末二位被另一个整数除尽了那么该数的末二位该是什么呢
Input 输入数据有若干组每组数据包含二个整数ab0 a10000, 10 b100若遇到0 0则处理结束。
Output 对应每组数据将满足条件的所有尾数在一行内输出格式见样本输出。同组数据的输出其每个尾数之间空一格行末没有空格。
Sample Input
200 40 1992 95 0 0
Sample Output
00 40 80 15
题目解析
简单来说首先多组数据输入每行有两个整数ab其中a代表着题目中所叙述的那个整数(一个整数只知道前几位不知道末二位),b代表着(被另一个整数除尽了)的那个整数。 例如第一行200 40 也就是说 200xx / 40 可以得到一个整数可以整除 20000 20040 20080这三个数可以将40整除故输出00 40 80
思路分析
对于代码的实现首先要用到多组数据该题目主要找到原数就可以了这里的a是原数的前几位而原数的后两位没有给出即只要a*100后两位数 就是原数这里的后两位数可以用个for循环去实现也就是说将a*100(for循环控制00~99)然后原数满足可以被b整除找到满足的数即可当a和b都为0的时候程序结束最后行末尾没有空格。
代码如下
#includestdio.h
int main()
{int a,b,i,j,d[101],flag0;while(scanf(%d%d,a,b)!EOF) //多组数据输入{if(a0b0) //当a和b都为0的时候程序结束break;flag0; //这里的flag是为了区分第一个数即如果只有一个结果那么该结果输出后没有空格而当是多个结果的时候第一个结果后面会有个空格紧跟着是第二个数的输出行末是没有空格的for(i0; i100; i){ja*100i; //这里的j就是将原来的那个数给确定出来加上i然后i,也就是该原数这里的i是为了补充不确定的后两位数if(j%b0) //如果那个数可以被b整除即就是所要求的结果{if(flag) //如果flog0就执行而flag初始值被赋值为0即空格是有最少两个结果的时候才打印的printf( );printf(%02d,i);flag; //flog当先再进行判断就会满足if(flag)然后打印空格这说明是多满足的结果而不是一个结果}}printf(\n); //按要求进行换行格式输出控制}return 0;}