PAT.1086.就不告诉你

题目

作者: CHEN, Yue
单位: 浙江大学
时间限制: 400 ms
内存限制: 64 MB
代码长度限制: 16 KB

做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。

输入格式:
输入在第一行给出两个不超过 1000 的正整数 A 和 B,其间以空格分隔。

输出格式:
在一行中倒着输出 A 和 B 的乘积。

输入样例:

5 7

输出样例:

53

分析

得到乘积,倒叙输出即可,但是有个小坑就是,比如 20 x 30 = 600 ,此时倒叙输出答案应该为 6 而不是 006,就要想办法剔除前面的 0,我的解决办法是设置一个标记默认为 true,只有当前位数不为 0 时标记才转为 false,在标记为 true 时,当前位数不输出

代码(cpp)

#include<iostream>
using namespace std;
int main(){
	int A,B;
	cin>>A>>B;
	int ans = A*B;
	bool flag = true;
	while(ans){
		int num = ans%10;
		ans = ans/10;
		if(flag && !num)   // 当标记状态还为 true ,且当前余数为 0,则不继续执行
			continue;
		if(flag && num)    // 当标记状态为 ture,且当前余数不为 0了,变换标记,开始输出
			flag =false;
		cout<<num;
	}
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/liyuanyue2017/article/details/82978299