芝麻会长 2021-11-15 13:02 采纳率: 66.7%
浏览 55
已结题

PTA.1016.为什么运行超时

img


#include <iostream>
#include <cmath>
using namespace std;
inline int Than(int ,int);
inline int Then(int ,int);
int main()
{
    int num[4];
    int  i,a,b;
    for(i=0;i<4;i++){
        cin>>num[i];
    }
    a=Then(Than(num[0],num[1]),num[1]);
    b=Then(Than(num[2],num[3]),num[3]);      
    cout<<a+b<<endl;
}
inline int Than(int a ,int b)              //计算有几个相同的数字
{
    int i,c=a,i_1=0,d,e;
    for(i=0;;i++)
    {
        c=c/10;
        if(c==0)break;
    }
    for(;i!=(-1);i--)
    {
        d=a/pow(10,i);
        if(d==b)i_1++;
        e=pow(10,i);
        a=a%e;
    }
    return(i_1);
}
inline int Then(int a,int b)               //计算相应的PA,PB;
{
    int c=1;
    a=a-1;
    for(;a!=0;a--)
    {
        c=c+pow(10,a);
    }
    return(b*c);
}

img


另外,可不可以数字先转换成字符,之后通过字符的比较,得到位数,再将单个字符转换成字符串,之后相加
//现在的问题是得不到位数

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
    unsigned long Num[4];
    unsigned long i,a,a1,b,b1,e,f;
    e=f=0;
    for(i=0;i<4;i++){
        cin>>Num[i];
    }
    a=Num[0],a1=Num[3],b=Num[2],b1=Num[3];
    ostringstream oss;
    oss<<a;
    string str_a=oss.str();
    oss<<a1;
    string str_a1=oss.str();
    oss<<b;
    string str_b=oss.str();
    oss<<b1;
    string str_b1=oss.str();
    for(i=0;i<str_a.length();i++){                //计算相同的字符,可是为什么不能
        if(str_a[i]==str_a1){
            e++;
        }
    }
    for(i=0;i<str_b.length();i++){
        if(str_b[i]==str_b1){
            f++;
        }
    }

    //数字先转换成字符,之后通过字符的比较,得到位数,再将单个字符转换成字符串,之后相加
    //现在的问题是得不到位数

}


img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月23日
    • 创建了问题 11月15日

    悬赏问题

    • ¥15 高价求中通快递查询接口
    • ¥15 解决一个加好友限制问题 或者有好的方案
    • ¥15 急matlab编程仿真二阶震荡系统
    • ¥20 TEC-9的数据通路实验
    • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
    • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
    • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
    • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
    • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
    • ¥30 求解达问题(有红包)