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;
}