PAT B1086

1086 就不告诉你 (15 分)

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

输入格式:

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

输出格式:

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

输入样例:

5 7

输出样例:

53

思路: 

           <解法1>将乘积放在sum中然后,倒叙存入数组.然后输入数组( 如:10*10=100  则要输出1而不是001) 难点也就是除去从第一位连续的0

<解法2>将所求得的乘积直接导入存入一个int类型的变量,然后直接输出;

//解法一
#include <cstdio>
int main(){
	int res[10];
	int a,b,sum,time=0,flag=0;
	scanf("%d%d",&a,&b);
	sum=a*b;
	//将sum倒叙存入数组中 
	while(sum){
		res[time++]=sum%10;
		sum/=10;
	}
	
	int f=0; 
	for(int i=0;i<time;i++){
		//f用于控制 去除从第一位输出一直未0 
		if(res[i]!=0){
			f=1;	
		}
		if(f==1) 
		printf("%d",res[i]);
	}
	
	return 0;
} 

解法二:思路来源于PAT B1016中将3个6转化为666,这里把a中不同的数字去下拉拼成另一个数字.

//解法二
#include <cstdio>
int main(){
	int a,b;
	scanf("%d%d",&a,&b);
	a*=b;
	for(b=0;a!=0;a/=10){
		b=b*10+a%10;
	}
//	while(a){  这个也行
//		b=10*b+a%10;
//		a/=10; 
//	}
	printf("%d",b);
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_40959340/article/details/83017800