1,奇怪的函数
P2759 奇怪的函数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

1这道题有两个点,一个是求数的位数
2,用整数二分求出的位数与n比较
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
int main(){
    int k;
    scanf("%lld",&n);
    ll l=1 ,r=2e9;
    while(l<r){
        ll mid=(l+r)/2;
        if((ll)mid*log10(1.0*mid)+1>=n)r=mid;
        else
        l=mid+1;
    }
    cout<<l;
    return 0;
} 
2.垂直柱状图
P1598 垂直柱状图 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
题目描述
写一个程序从输入文件中去读取四行大写字母(全都是大写的,每行不超过 100100 个字符),然后用柱状图输出每个字符在输入文件中出现的次数。严格地按照输出样例来安排你的输出格式。
输入格式
四行字符,由大写字母组成,每行不超过 100100 个字符
输出格式
由若干行组成,前几行由空格和星号组成,最后一行则是由空格和字母组成的。在任何一行末尾不要打印不需要的多余空格。不要打印任何空行。
输入输出样例
输入 #1复制
THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG. THIS IS AN EXAMPLE TO TEST FOR YOUR HISTOGRAM PROGRAM. HELLO!
输出 #1复制
 
                             *
                            *
        *                   *
        *                   *     *   *
        *                   *     *   *
*       *     *             *     *   *
*       *     * *     * *   *     * * *
*       *   * * *     * *   * *   * * * *
*     * * * * * *     * * * * *   * * * *     * *
* * * * * * * * * * * * * * * * * * * * * * * * * *
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
 
#include <bits/stdc++.h>
using namespace std;
int a[26];//用于记录字符出现的个数 
int main(){
	string s;
	for(int i=0;i<4;i++){
		getline(cin,s);//输出字符串 
	for(int j=0;j<s.length();j++){
		if(s[j]>='A'&&s[j]<='Z')
		a[s[j]-'A']++;//s[j]-'A'将字符转换成数字 
	}
}
	int sum=0;
	for(int i=0;i<26;i++){
		sum=max(sum,a[i]);//找出柱状图的最高点 
	} 
	for(int i=sum;i>0;i--)
	{
	for(int j=0;j<26;j++){
		if(a[j]>=i)
		cout<<"* ";//注意空格 
		else
		cout<<"  ";
	}
	cout<<endl;
}
	
	for(int i=0;i<26;i++)
	printf("%c ",i+'A');
	return 0;
}  
3,招聘

 
#include <iostream>
using namespace std;
const int N = 1010;
int a[N];
int main() {
    int t; cin >> t;
    while(t--) {
        int n, m; cin >> n >> m;
        for(int i = 1; i <= m; i++) cin >> a[i];
        int res = 0;
        for(int i = 1; i <= n; i++) {
            res = (res + a[1 + (n - i) % m]) % i;//约瑟夫环递推
        }
        cout << res << endl;
    }
    return 0;
}
 


















