1. 程式人生 > >PAT 乙級 1086 就不告訴你

PAT 乙級 1086 就不告訴你

做作業的時候,鄰座的小盆友問你:“五乘以七等於多少?”你應該不失禮貌地圍笑著告訴他:“五十三。”本題就要求你,對任何一對給定的正整數,倒著輸出它們的乘積。

53.jpg

輸入格式:

輸入在第一行給出兩個不超過 1000 的正整數 A 和 B,其間以空格分隔。

輸出格式:

在一行中倒著輸出 A 和 B 的乘積。

輸入樣例:

5 7

輸出樣例:

53

作者: CHEN, Yue

單位: 浙江大學

時間限制: 400 ms

記憶體限制: 64 MB

程式碼長度限制: 16 KB

 

這道題有兩個地方需要注意。第一個是pow()函式的引數需要是double,另一個是要注意倒著輸出的時候的數字開頭的0的處理。

程式碼思路:找到陣列前後不為0的首個數字,將中間的輸出。

#include<iostream>
#include<string.h>
#include<math.h>
#include<string.h>
using namespace std;
double a[9];
int main(){
	int i,j,m;
	double k,add,A,B;
	cin>>A>>B;
	add=A*B;
	k=1;
	memset(a,0,sizeof(a));
	for(i=8;i>=0;i--){
		a[i]=int(add/pow(10,k-1))%10;
		k++;
	}
	for(i=0;i<=8;i++){
		if(a[i]!=0) break;
	}
	for(j=8;j>=i;j--){
		if(a[j]!=0) break;
	}
	for(m=j;m>=i;m--){
		cout<<a[m];
	}
	return 0;
}

//自己的筆記:%取餘操作,必須是整數。