PAT 乙級 1086 就不告訴你
阿新 • • 發佈:2018-12-30
做作業的時候,鄰座的小盆友問你:“五乘以七等於多少?”你應該不失禮貌地圍笑著告訴他:“五十三。”本題就要求你,對任何一對給定的正整數,倒著輸出它們的乘積。
輸入格式:
輸入在第一行給出兩個不超過 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; }
//自己的筆記:%取餘操作,必須是整數。