题干:
为让同学对于时间复杂度有更加深入的认识,暑期第一场排位赛只是一道简单的签到题,本题目首先假设计算机速度是每秒 ,之后会给出计算机在1s中n的最大规模和运算量对应表,并用运算量作为输入,请同学们对于每个输入,输出n的最大规模。(注意用**代表乘方)
运算量 | n! | 2**n | n**3 |
---|
最大规模 | 11 | 26 | 464 |
运算量 | n**2 | nlogn | n |
最大规模 | 10000 | 4500000 | 100000000 |
输入格式:
第一行,一个数 ,作为测试样例数。
第二行, 个字符串(来源于上表运算量)。
输出格式:
输出t个运算量对应n的最大规模,以换行符作为分割。
输入样本:
6
n! 2**n n**3 n**2 nlogn n
输出样本:
11
26
464
10000
4500000
100000000
具体代码:
#include<bits/stdc++.h>
#include<string>
using namespace std;
int main(){
int num;
scanf("%d",&num);
string a="n!";
string b="2**n";
string c="n**3";
string d="n**2";
string e="nlogn";
string f="n";
string A;
long long M[100];
for(int i=0;i<num;i++){
cin>>A;
if(A==a)
M[i]=11;
else if(A==b)
M[i]=26l;
else if(A==c)
M[i]=464;
else if(A==d)
M[i]=10000;
else if(A==e)
M[i]=4500000;
else if(A==f)
M[i]=100000000;
}
for(int j=0;j<num;j++){
cout<<M[j]<<endl;
}
return 0;
}