刚开始学c++,
做到这一题时发现超时了。
自己测试的时候运行很长一段时间,
最后还是没有出答案。
看了很久没看出原因,
百度上也没有找到,
请问各位能帮我看一下我的c++代码为什么超时了吗?
题:
给定一个 整数n,输出这个数的位数和数位累加和。
输入格式
一个整数。
输出格式
第一行一个整数表示其位数 第二行一个整数表示其各个数位累加和。
代码:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n,a[10],digit,answer[11],endanswer=0;
cin>>n;
a[1]=10;
for(int i=1;n/a[i]!=0;){
for(answer[i]=n%a[i];answer[i]>=10;){
answer[i]/=10;
}
endanswer+=answer[i];
i++;
a[i]*=10;
digit=i;
}
for(answer[10]=n/10;answer[10]>=10;){
answer[10]=n/10;
}
endanswer+=answer[10];
cout<<digit<<endl<<endanswer;
return 0;
}