4 条题解

  • 1
    #include<bits/stdc++.h>
    using namespace std;
    string a;
    int ma[10010]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
    char b[10010];
    bool zhi(int x){ 
    	if(x<=1) return 0;
    	if(x==2)    return 1;
    	for(int i=2;i<=sqrt(x);i++)
    		if(x%i==0)
    			return 0;
    	return 1;
    }
    int main()
    {
    	int ans,maxn=0,minn=0,len;
    	cin.getline(b,10010);
    	len=strlen(b);
    	sort(b,b+len);
    	for(int i=0;i<=len;i++)
    	{
    		if(b[i]==b[i+1]) ma[maxn]++;
    		if(b[i]!=b[i+1]) maxn+=1;
    	}
    	sort(ma,ma+maxn);
    	/*for(int i=0;i<maxn;i++)
    	{
    		cout<<ma[i]<<' ';
    	}
    	cout<<'\n';*/
    	sort(ma,ma+maxn);
    	ans=ma[maxn-1]-ma[0];
    	if(zhi(ans)==1) 
    	{
    		cout<<"Lucky Word";
    		cout<<'\n'<<ans;
    	}
    	if(zhi(ans)==0)
    	{
    		cout<<"No Answer\n0";
    	} 
      
    	return 0;
    }
    
    • 1

      思路

      写个判断质数的函数。 主程序里,先统计,找出最大和最小值,最后作差判断即可。

      code

      #include<bits/stdc++.h>
      using namespace std;
      int a[27];
      bool f(int x){//判断质数
      	if(x<=1) return 0;
      	if(x==2)    return 1;
      	for(int i=2;i<=sqrt(x);i++)
      		if(x%i==0)
      			return 0;
      	return 1;
      }
      int main(){
      	string s;
      	cin>>s;
      	for(int i=0;i<s.size();i++){//统计
      		a[s[i]-'a']++;
      	}
      	int max=0,min=999;
      	for(int i=0;i<26;i++){//找最大和最小
      		if(a[i]<min&&a[i]!=0)    min=a[i];
      		if(a[i]>max)    max=a[i];
      	}
      	if(f(max-min)){//符合题意
      		cout<<"Lucky Word\n";
      		cout<<max-min;
      	}else{//不符合
      		cout<<"No Answer\n0";
      	}
      	return 0;
      }
      
      • 0
        @ 2024-12-5 13:35:34
        #include<bits/stdc++.h>
        using namespace std;
        int zhishu[25]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97};
        char ch[27];
        int a[27];
        int main()
        {
        	int maxn=0,minn=100,t=0;
        	string s;
        	cin>>s;
        	for(int i=1;i<=26;i++)
        	{
        		ch[i]=96+i;
        	}
        	for(int i=0;i<=s.length();i++)
        	{
        		for(int j=1;j<=26;j++)
        		{
        			if(s[i]==ch[j])
        			{
        				a[j]++;
        			}
        		}
        	}
        	for(int i=1;i<=26;i++)
        	{
        		maxn=max(a[i],maxn);
        	}
        	for(int i=1;i<=26;i++)
        	{
        		if(a[i]>0)
        		{
        			minn=min(a[i],minn);
        		}
        	}
        	for(int i=0;i<=24;i++)
        	{
        		if(maxn-minn==zhishu[i])
        		{
        		    cout<<"Lucky Word"<<endl<<maxn-minn;
        		    t=1;
        		    break;
        	    }
            } 
            if(t==0)
            {
        		cout<<"No Answer"<<endl<<"0";
        	}
        	return 0;
        }
        
        • 0
          @ 2024-12-4 12:27:13

          #include <bits/stdc++.h> using namespace std;

          int maxn(string s) { int num[27]={},q=0; char p; for(int i=0;i<s.size();i++) { p=s[i]; num[int (p-'a')]++; //cout<<"i="<<int(p-'a')<<endl; } int max=num[0]; //cout<<"num[0]="<<num[0]; for(int i=0;i<27;i++) { if(num[i]>max) { max=num[i]; q=num[i]; //cout<<"q="<<q<<endl; } } //cout<<"maxq="<<q; return q;

          }

          int minn(string s) { int num[27]={},q=0; char p; for(int i=0;i<s.size();i++) { p=s[i]; num[int (p-'a')]++; //cout<<"i="<<int(p-'a')<<endl; } int min; //cout<<"num[0]="<<num[0]; for(int i=0;i<27;i++) { if(num[i]!=0) { min=num[i]; q=num[i]; break; } } for(int i=0;i<27;i++) { if(min>num[i]&&num[i]!=0) { min=num[i]; q=num[i]; //cout<<"q="<<q<<endl; } } //cout<<"minq="<<q; return q;

          }

          bool sushu(int n) {

          if(n==1||n<=0)
          {
          	return 0;
          }
          else
          {
          	for(int i=2;i*i<=n;i++)
          	{
          		if(n%i==0)
          		{
          			return 0;
          		}
          	}
          	return 1;
          }
          

          }

          int main() { string s; int max,min; cin>>s; max=maxn(s); min=minn(s); if(sushu(max-min)==1) { cout<<"Lucky Word"<<endl; cout<<max-min; } if(sushu(max-min)==0) { cout<<"No Answer"<<endl; cout<<"0"; } return 0; }

          • 1

          信息

          ID
          414
          时间
          1000ms
          内存
          256MiB
          难度
          7
          标签
          递交数
          25
          已通过
          8
          上传者