zoukankan      html  css  js  c++  java
  • 问题 H: 部分A+B (15)

    问题 H: 部分A+B (15)

    时间限制: 1 Sec  内存限制: 32 MB
    献花: 86  解决: 81
    [献花][花圈][TK题库]

    题目描述

    正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。

    现给定A、DA、B、DB,请编写程序计算PA + PB。

    输入

    输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 10^10。

    输出

    在一行中输出PA + PB的值。

    样例输入

    3862767 6 13530293 3
    3862767 1 13530293 8

    样例输出

    399
    0
    参考代码:

    #include<stdio.h>

    
    

    #include<cmath>

    
    

    int main(){

    
    

        int a,c,b,d;

    
    

        int ret1=0,ret2=0;

    
    

        int cnt=0,n=0;

    
    

        scanf("%d %d %d %d",&a,&c,&b,&d);

    
    

        while(a!=0){

    
    

            if(a%10==c){

    
    

                cnt++;

    
    

                ret1+=pow(10,cnt-1)*c;

    
    

            }

    
    

            a=a/10;

    
    

        }

    
    

        while(b!=0){

    
    

            if(b%10==d){

    
    

                n++;

    
    

                ret2+=pow(10,n-1)*d;

    
    

            }

    
    

            b=b/10;

    
    

        }

    
    

        printf("%d ",ret1+ret2);

    
    

        return 0;

    
    

    }

    取出每一位数后直接处理,不要保存到数组再遍历,这样会超时因为最大值为10^10

     
  • 相关阅读:
    c#委托与事件
    c#垃圾回收与资源管理
    c#接口、抽象类
    c#集合类、ArrayList、queue
    c#位运算
    c#索引器
    c#使用属性封装
    c#继承
    c#数组参数
    Lambda表达式
  • 原文地址:https://www.cnblogs.com/zhhjthing/p/7818526.html
Copyright © 2011-2022 走看看