文章

166

粉丝

68

获赞

855

访问

61.2k

头像
数字阶梯求和 题解:弱智判题给我整笑了
P1359 哈尔滨工业大学机试
发布于2025年2月28日 10:58
阅读数 258

#include <bits/stdc++.h>
using namespace std;

void stringPlus(string &a,string b){
    string c;
    while(a.size()!=b.size()){
        if(a.size()<b.size())a='0'+a;
        if(a.size()>b.size())b='0'+b;
    }
    int n=a.size();
    int carry=0;
    for(int i=n-1;i>=0;i--){
        int k=a[i]-'0'+b[i]-'0'+carry;
        c.push_back(k%10+'0');
        carry=k/10;
    }
    if(carry)c.push_back(carry+'0');
    reverse(c.begin(),c.end());
    a=c;
}

int main() {
    int a,n;
	while(cin>>a>>n){
	    string x,y,ans;
	    x.push_back(a+'0');
	    ans.push_back('0');
	    for(int i=0;i<n;i++){
	        y+=x;
	        stringPlus(ans,y);
	    }
	    for(auto x:ans)cout<<x;
	    cout<<endl;
	}
}

最后的输出如果是cout就无法输出,就会0%,但是用一个一个输出就能过,太难绷了

登录查看完整内容


登录后发布评论

2 条评论
快乐小土狗
2025年2月28日 13:37


要记得初始化,IDE有自动优化,但实际上这里语法有问题的
改成这样就可以了

赞(0)

RingoCrystal : 回复 快乐小土狗: 这个没问题的,所有的ide的默认init方法都是空置字符串,问题也不是这里,是cout的判定逻辑有问题,应该是在线ide的限长设置的问题

2025年2月28日 16:59