洛谷-P1125-笨小猴

[NOIP2008 提高组] 笨小猴 - 洛谷


解题思路:

1.由题可得,输入一个只包含字母的字符串,那么用string str 来表示,判断里面字母出现最多的次数和最少的次数,max和min

2.如何判断次数呢?可以利用两个for循环来判断,如果相等,则计数器增加,每判断完一个字母,更新max和min的值,枚举下一个字母前,计数器清零

3.设置一个判断质数的函数,对于max-min的结果进行判断,注意对于0和1的判断


#include<bits/stdc++.h>
using namespace std;
void print(int a)
{
	if(a==0||a==1)//如果结果是0或者1 
	{
		cout<<"No Answer"<<endl;
		cout<<0;
		return ;
	}//输出no answer ,结束程序 
	for(int i=2;i<=a-1;i++)//否则,判断是否为质数 
	{
		if(a%i==0)//如果不是质数 
		{
			cout<<"No Answer"<<endl;//输出no answer,0 
			cout<<0;
			return ;//结束程序 
		}
	}
	cout<<"Lucky Word"<<endl;//如果是质数,输出lucky word 和a 
	cout<<a;
}
int main()
{
	string str;
	int max=0;
	int min=99999999;
	cin>>str;

	for(int i=0;i<=str.length()-1;i++)//依次枚举每一个字符 
	{
		int sum=0;//计数器归零 

		for(int j=0;j<=str.length()-1;j++)//依次枚举每一个字符 
		{
			if(str[i]==str[j])//如果相等,计数器加1 
			sum++;
		}

		if(sum>max)//如果出现次数大于max,则更新max 
		max=sum;
		if(sum<min)//如果出现次数小于min,则更新min 
		min=sum;
	}

	print(max-min);//执行print函数 
	return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值