小白,第一次写成这样怎么办?(虽然100分过了)
查看原帖
小白,第一次写成这样怎么办?(虽然100分过了)
883156
Y520X楼主2023/12/23 21:57
#include<bits/stdc++.h>
using namespace std;

bool isPrime(int num) {
    // 处理特殊情况
    if (num <= 1) {
        return false;
    }

    // 判断是否为质数
    for (int i = 2; i * i <= num; i++) {
        if (num % i == 0) {
            return false;  // 若有因子,则不是质数
        }
    }
    return true;  // 没有找到因子,是质数
}
    
int main()
{
	char s[101];
	int cnt[26]={0}};
	scanf("%s",s);
	int i,j;
	int max=0,min=0;
	for(i=0;s[i]!='\0';i++)
	{
		if(s[i]=='a')
		{
			cnt[0]++;
		}
		if(s[i]=='b')
		{
			cnt[1]++;
		}
		if(s[i]=='c')
		{
			cnt[2]++;
		}
		if(s[i]=='d')
		{
			cnt[3]++;
		}
		if(s[i]=='e')
		{
			cnt[4]++;
		}
		if(s[i]=='f')
		{
			cnt[5]++;
		}
		if(s[i]=='g')
		{
			cnt[6]++;
		}
		if(s[i]=='h')
		{
			cnt[7]++;
		}
		if(s[i]=='i')
		{
			cnt[8]++;
		}
		if(s[i]=='j')
		{
			cnt[9]++;
		}
		if(s[i]=='k')
		{
			cnt[10]++;
		}
		if(s[i]=='l')
		{
			cnt[11]++;
		}
		if(s[i]=='m')
		{
			cnt[12]++;
		}
		if(s[i]=='n')
		{
			cnt[13]++;
		}
		if(s[i]=='o')
		{
			cnt[14]++;
		}
		if(s[i]=='p')
		{
			cnt[15]++;
		}
		if(s[i]=='q')
		{
			cnt[16]++;
		}
		if(s[i]=='r')
		{
			cnt[17]++;
		}
		if(s[i]=='s')
		{
			cnt[18]++;
		}
		if(s[i]=='t')
		{
			cnt[19]++;
		}
		if(s[i]=='u')
		{
			cnt[20]++;
		}
		if(s[i]=='v')
		{
			cnt[21]++;
		}
		if(s[i]=='w')
		{
			cnt[22]++;
		}
		if(s[i]=='x')
		{
			cnt[23]++;
		}
		if(s[i]=='y')
		{
			cnt[24]++;
		}
		if(s[i]=='z')
		{
			cnt[25]++;
		}
			
	}
	int n,m=0;
	int sum[26];
	
	for(i=0;i<26;i++)
	{
		if(cnt[i]!=0)
		{
			sum[m]=cnt[i];
			m++;
		}
	}
	sort(sum,sum+m);
	n=sum[m]-sum[0];
	
	if (isPrime(n)) {
		printf("Lucky Word\n");
        printf("%d",n);
    } else {
    	printf("No Answer\n");
        printf("0");
    }

	return 0;
}

写成这个是因为缺少学习了什么东西吗?只会用这种低级的写法,感觉没有什么水平的提升,求大佬我该怎么办?

2023/12/23 21:57
加载中...