NC239209. 输出练习
描述
输入描述
第一行一个整数 。
接下来 行,每行三个整数 表示一次练习的参数。
,,。
输出描述
共 行,每行从小到大输出符合要求的数,若不存在,输出一行 None.(包括句点)。
示例1
输入:
4 1 10 2 2 4 5 19562 31702689720 17701 3680 37745933600 10
输出:
1 2 4 8 None. 313325401 10000 100000 1000000 10000000 100000000 1000000000 10000000000
C++(clang++ 11.0.1) 解法, 执行用时: 43ms, 内存消耗: 564K, 提交时间: 2022-12-10 21:28:46
#include<iostream> using namespace std; int main(){ int T;cin>>T; while(T--){ long long l,r,k,t=1; bool flag=true; cin>>l>>r>>k; if(k==0&&l==0){cout<<"0 ";flag=false;} while(t<=r){ if(t>=l){flag=false;cout<<t<<" ";} if(k==0||k==1)break; if(t>r/k)break;t=t*k; } if(flag)cout<<"None."; cout<<endl; } return 0; }
Python3 解法, 执行用时: 1729ms, 内存消耗: 5032K, 提交时间: 2022-10-29 19:01:32
t = int(input()) for _ in range(t): l, r, k = [int(s) for s in input().split()] ok = False s = set() for i in range(0, 64): p = pow(k, i) if l <= p and p <= r: s.add(p) lst = s lst = sorted(lst) if len(lst ) != 0: print(*lst) else: print("None.")