• 岛屿的缘分


    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;
    }
    
  • 相关阅读:
    Python2和3版本对str和bytes类型的处理
    使用Fiddle对夜神模拟器进行抓包的设置
    WebSocket 实现链接 群聊(low low low 版本)
    WebSocket 实现链接 发送消息
    Linux文件操作命令
    Linux命令格式
    FastJson
    JSON语法规则
    Mybatis resultMap支持继承
    Mybatis在xml文件中处理大于号小于号的方法
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094915.html
Copyright © 2020-2023  润新知