输出换行得到正确答案?!!!(玄幻代码)
  • 板块灌水区
  • 楼主Silversnowflake
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/9/7 16:47
  • 上次更新2024/9/7 19:56:50
查看原帖
输出换行得到正确答案?!!!(玄幻代码)
1060680
Silversnowflake楼主2024/9/7 16:47

P1062 [NOIP2006 普及组] 数列 原错误代码:

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int k,n,all[N],ans = 0;
int cl(int x){
	int l;
	for(int i=0;i<=10;i++){
		l+=pow(2,i);
		if(l > x){
			n-=pow(2,i);
			return i;
		}
		if(l == x){
			n-=pow(2,i+1);
			return i+1;
		}
	}
}
int main(){
	cin>>k>>n;
	int l;
	while(n>0){
		l = cl(n);
		ans += pow(k,l);
	}
	cout<<ans;
	return 0;
}

但是加入输出换行过样例?!

#include<bits/stdc++.h>
using namespace std;
const int N = 1e4+10;
int k,n,all[N],ans = 0;
int cl(int x){
	int l;
	for(int i=0;i<=10;i++){
		l+=pow(2,i);
		if(l > x){
			n-=pow(2,i);
			return i;
		}
		if(l == x){
			n-=pow(2,i+1);
			return i+1;
		}
	}
}
int main(){
	cin>>k>>n;
	int l;
	while(n>0){
		l = cl(n);
		ans += pow(k,l);
  		cout<<endl;		//只加这个就能过样例?
	}
	cout<<ans;
	return 0;
}

2024/9/7 16:47
加载中...