题目描述
积分等级系统根据用户刷题获得的积分,分层级赋予用户对应的等级头衔。
等级头衔与积分的规则如下:
等级头衔 | 积分 |
---|---|
11 级 | 0∼1000∼100 |
22 级 | 101∼250101∼250 |
33 级 | 251∼600251∼600 |
44 级 | 601∼999601∼999 |
55 级 | 1000∼99991000∼9999 |
之后 6∼156∼15 级采用统一公式计算,第 ii 级对应的积分范围为:
(10i−2)∼(10i−1−1)(10i−2)∼(10i−1−1)
当积分超出 1515 级范围,统一归为 1616 级,不再设定更高的头衔等级。
请你设计一个程序,对于输入的积分,输出其对应的等级头衔
输入格式
只有一行,一个整数 xx 表示用户积分
输出格式
输出一个整数,为用户积分对应的头衔等级
测试样例
输入样例 #1
50
输出样例 #1
1
输入样例 #2
9999
输出样例 #2
5
输入样例 #3
1234567
输出样例 #3
8
数据范围
对于 50%50% 的数据,0≤x≤99990≤x≤9999。
对于 100%100% 的数据,0≤x≤9×10180≤x≤9×1018。
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n;
cin>>n;
if(n>=0&&n<=100) cout<<1;
if(n>=101&&n<=250) cout<<2;
if(n>=251&&n<=600) cout<<3;
if(n>=601&&n<=999) cout<<4;
if(n>=1000&&n<=9999) cout<<5;
if(n>9999){
for(int i=6;i<=15;i+=1){
long long a=pow(10,i-2);
long long b=pow(10,i-1);
long long c=b-1;
if(n>=a&&n<=c) cout<<i;
}
long long e=pow(10,15-2);
long long r=pow(10,15-1);
long long t=r-1;
if(n>t) cout<<16;
}
return 0;
}