关于写了半天只得了45分这回事 (求助)
查看原帖
关于写了半天只得了45分这回事 (求助)
358794
Xfer_splendor楼主2021/7/13 19:08

I need 大佬

#include<iostream>
#include<cstdio>
using namespace std;
long long l,w,r,k;
int n=-1;
long long pow (long long a,long long b){//快速幂 
    if (a==1||b==0){return 1;}
	else{
		long long t=pow (a,b/2);
		if (b%2==0){
			return t*t;
		}
		else{
			return t*t*a;
		}
	}
}
int main(){
	scanf ("%lld%lld%lld",&l,&r,&w);//输入 
	while (k<l){//求起始位置 
		n++;
		k=pow (w,n);
	}
	if (k>r){ printf ("-1"); return 0; }//特判 
	else if (k==r){ printf ("%d",n); return 0; }
	for (int i=n;;++i){//循环输出 
		k=pow (w,i);
		if (k<=r){//没超上限 
			printf ("%lld ",k);
		}
		else if (k>r){ //超了跳出 
			break;
		}
	}
	return 0;
}
2021/7/13 19:08
加载中...