zoukankan      html  css  js  c++  java
  • 岛屿的缘分

    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;
    }
    
  • 相关阅读:
    VUE 引入element ui 样式不生效解决
    Spark项目故障思路整理总结
    Spark-环境安装
    01.Kettle的安装-千亿级数仓环境搭建
    千亿级数仓day01-项目的简介
    Umeng项目day04
    Umengday12-统计指标
    Umengday11-azkaban调度
    Umengday09-hive自定义UDTF函数叉分函数
    Docker配置jdk1.8
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/11094915.html
Copyright © 2011-2022 走看看