1.统计每种字母各出现了几次2.筛法求素数

1.统计每种字母各出现了几次

#include<iostream>
#include<string>
using namespace std;
int a[27];                       // a[0]~a[25]分别代表"a~z"26个字母,再加上结束符共27个字符。 
int main()
{
     string s;
     int i=0;
     while( getline(cin,s) )
     { 
        i=0;
        while( s!=" " && i < s.size() )
        {
            if(s[i]>='a'&&s[i]<='z')
              a[s[i]-'a'+1]++;      // 如果字符串s此时s[0]为b,则a[2]++,a[2]=1,即b->1;
            i++;
         }
     }
   
    for(int j=1;j<=26;j++)
     if(a[j])
         cout << (char)(j+'a'-1) <<":"<< a[j] << endl;
     //printf("%c:%d\n",j+'a'-1,a[j]);
   
    return 0;
}

2.筛法求素数

#include<iostream>
using namespace std;
//T个询问,每次询问一个整数N,每次输出前N个数中素数的个数。T<=1亿 N<=1000000
int c[1000001];  //刚开始,所有数都标记为质数
int a[1000001];  //表示前N个数总共有多少个素数
 
int m=0;
int main()
{
 //
    for(int i=2;i<=1000000;i++)
      {
        //if(c[i]==0)  //if(!a[i])
            for(int j=2*i;j<=1000000;j=j+i)
                 c[j]=1;
       }
      for(int i=2;i<=1000000;i++)
      {
        if(c[i]==0) 
            m++;
        a[i]=m;
      }

    int T;
    cin>>T;
    int n;
     for(int i=1;i<=T;i++)
     {
        cin>>n;
        cout<<a[n]<<"\n";
     }
    return 0;
}

两者都是通过提前写好数据库,与库内数据进行比较来缩短程序编译时间。

猜你喜欢

转载自blog.csdn.net/weixin_40539125/article/details/82866283
今日推荐