生活随笔
收集整理的这篇文章主要介绍了
岛屿的缘分
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
Description
人和人的相识是一种缘分,其实人有幸到某地也是一种缘分。某风景优美的K小岛的缘分和其他景点的缘分来得不一般,K岛上有一个石碑刻上了两个很大很大的整数x和y,和一个正整数K,后面写道:“谁能准确的写出x和y的乘积中最右边的k位数(如果乘积不足K位则在左边用“0”补足K位),他就是和K小岛有缘分的人”,李先生到了K小岛,他马上叫他的秘书算一算,写出x和y的乘积中最右边的k位数,看看李先生和他的秘书是否和K小岛有缘分。现在也请你完成这个工作(注意: 如果乘积不足K位则在左边用“0”补足K位)。
Input
从文件b.in读入数据,文件中共有三行,第一行是一个位数不大于120的正整数x,第二行是一个位数不大于120的正整数y,第三行是一个正整数K(1=< K <=250)。
Output
结果输出到文件b.out中,只有一行,就是x和y的乘积中最右边的k位数。
Sample Input
输入输出样例1:
b.in
30
60
3
输入输出样例2:
b.in
12
13
5
Sample Output
输入输出样例1:
b.out
800
输入输出样例2:
b.out
00156
.
.
.
.
.
分析
高精乘
.
.
.
.
.
程序:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;int a[200],b[200],c[1000],k,l1,l2;
string s,t,r;int main()
{freopen("b.in","r",stdin);freopen("b.out","w",stdout);cin>>s>>t;scanf("%d",&k);l1=s.size();for (int i=l1;i>=1;i--)a[l1-i+1]=s[i-1]-'0'; l2=t.size();for (int i=l2;i>=1;i--)b[l2-i+1]=t[i-1]-'0';for (int i=1;i<=l1;i++)for (int j=1;j<=l2;j++){c[i+j-1]=a[i]*b[j]+c[i+j-1];c[i+j]+=c[i+j-1]/10;c[i+j-1]%=10;}int i=l1+l2;while (c[i]>10) {c[i+1]=c[i]/10;c[i]%=10;i++;}for (int i=k;i>=1;i--)printf("%d",c[i]);fclose(stdin);fclose(stdout);return 0;
}
转载于:https://www.cnblogs.com/YYC-0304/p/11094915.html
总结
以上是生活随笔为你收集整理的岛屿的缘分的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。