题意:给你一个范围[l,r],求k的i次方在那个范围的数
思路:看到过的人那么少,这还是A题啊,肯定有坑,写完交了一发,果然,爆longlong,所以为了防止爆,在它即将爆的时候停止就行了。。
ac代码:
#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 101000
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define MINF 1<<30
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
int main()
{
ll l,r,k;
while(scanf("%I64d%I64d%I64d",&l,&r,&k)!=EOF)
{
ll num=1;
int bz=0;
while(num<=r)
{
if(num>=l)
{
if(bz==0)
{
bz=1;
printf("%I64d",num);
}
else
printf(" %I64d",num);
}
if(num>r/k)
break;
num*=k;
}
if(bz==0)
printf("-1\n");
else
printf("\n");
}
return 0;
}