解题思路:
注意事项:
参考代码:我又来了,童子编程军前进
1.先将输入的char类型用转变为int类型(相信初学者也会) 其次进行暴力逐一进行比较,比较出一样的次数,当然在过程中要注意进行判重(建议设一个布尔变量,判断过一次该数后不在进行判断),将每次出现的次数存在另一个数组中(相信大佬们可以优化到恰当好处!!!) 接着对存放次数的数组进行排序,求出最大值与最小值(其实也完全不需要排序,相信更牛逼的大佬可以直接的结果!!!) 然后进行判断质数(一定要注意“1”不是质素。。。。可怜的我就死在这里很多次。。。。否则会得到60分,但怎么发现都不会发现问题)————不会判断质数的孩子们翻模板 最后就是输出了(入门级别的都会把?) #include<iostream> #include<cstring> #include<algorithm> #include<cmath> using namespace std;char a[101];int b[101],sum[101],k;bool c[101];int cmp(int x,int y) //比较{ if(x>y) return 1; else return 0; }int ps(int x) //判断质数的模板{ if(x==1) return 0; //一定要注意1不为质数 if(x==2) return 1; int j=2; while(j<=sqrt(x)&&x%j!=0) j++; if(x%j==0) return 0; else return 1; }int main(){ cin>>a; int len=strlen(a); for(int i=0;i<len;i++) b[i+1]=a[i]; //转化 for(int i=1;i<=len;i++) if(c[b[i]]==0) { for(int j=i;j<=len;j++) if(b[i]==b[j]) sum[i]++; //记录 c[b[i]]=1; k++; } sort(sum+1,sum+len+1,cmp); //比较 if(ps(sum[1]-sum[k])) cout<<"Lucky Word"<<endl<<sum[1]-sum[k]; else cout<<"No Answer"<<endl<<"0"; //输出 return 0; } 2.我可以提供一个非常好理解的方法~~ 这道题就是遍历字符串,寻找字符数量然后用数组存起来,排序后判素,然后输出就可以了 #include<cmath> #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int sum[10001]; char word[10001]; int vis[10001]; bool is_prime(int n){//判素神器 if(n<2) return false; for(int i=2;i*i<=n;i++){ if(n%i==0) return false; } return true; } void findout(int sum[],int len){ sort(sum,sum+len); int i,j,ans; for(i=0;i<len;i++){ if(sum[i]==0) continue; else{ ans=sum[len-1]-sum[i]; //prime(ans);//判断ans是不是质数 if(is_prime(ans)==true){ printf("Lucky Word\n"); printf("%d",ans); } else{ printf("No Answer\n"); printf("0"); } break; } } }int main(){ memset(vis,0,sizeof(vis)); scanf("%s",word); int len=strlen(word); for(int i=0;i<len;i++){ if(vis[i]==1) continue; else if(vis[i]==0){ int j; for(j=i;j<len;j++){ if(word[j]==word[i]){ sum[i]++; vis[j]=1; } } vis[i]=1; } } findout(sum,len); return 0; } 3.较长一些的代码 #include<stdio.h> #include<string.h> int b[27];int zs(int x)//判断质数 { int i; if(x==1||x==0)return 0; for(i=2;i*i<=x;i++) if(x%i==0)return 0; return 1; } main() { char a[105]; int n,max=0,min=99999999,x,i; gets(a); n=strlen(a); for(i=0;i<n;i++) { b[a[i]-'a']++; }//统计每个字母出现的个数 for(i=1;i<=25;i++) { if(b[i]>max)max=b[i]; if(b[i]!=0&&b[i]<min)min=b[i]; }//找出出现最多的次数和最小的次数 x=max-min;//求差 if(zs(x)==1) { printf("Lucky Word\n"); printf("%d\n",x); } else { printf("No Answer\n"); printf("%d\n",0); } return 0; } 5.超长代码 #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #define Coding using namespace std #define Explode return #define AddOneSecond if#define ReduceOneSecond else#define Read scanf#define Write printf#define For for(i=0;i<=Length+1;i++) //i一定从0开始 字符串从0开始读;#define Ha for(i=1;i<=149;i++)//一些奇怪的define 宏定义一些自己喜欢的字 ;char String[105];int i,Length,Numbers[150],Maxn=0,Minn=100;bool PriNum(int);//判断素数 讲真可以在100以内搜就行了 ;Coding;int main(){ Read("%s",String); //读入字符串 Length=strlen(String); //strlen函数读取字符串长度 用<cstring>头文件; For //来一波循环 把字符串每个字符判断一轮; { AddOneSecond (String[i]) { Numbers[int(String[i])]++; //嵌套数组,把字母出现的次数记录下来; } } Ha { AddOneSecond(Numbers[i]>Maxn) { Maxn=Numbers[i]; //如果某个字母出现次数大于Maxn,更新Maxn,最终Maxn就等于出现最多次数的字母出现的次数; } AddOneSecond(Numbers[i]!=0&&Numbers[i]<=Minn){ Minn=Numbers[i]; //同上,增加了一些判断; } } AddOneSecond(PriNum(Maxn-Minn)==true) //如果判断Maxn-Minn是素数 输出Lucky Word 输出该素数 { Write("Lucky Word\n"); Write("%d",Maxn-Minn); } ReduceOneSecond Write("No Answer\n0"); //换行 Explode 0; //哈哈爆0 #define 宏定义真的可以定义一些好玩的东西}bool PriNum(int GLGJSSYQYHFBQZ) //判断素数的函数 ,为了方便定义成bool形式;{ AddOneSecond (GLGJSSYQYHFBQZ==1||GLGJSSYQYHFBQZ==0){ //苟利国家生死以,岂因祸福避趋之; Explode false; } ReduceOneSecond Explode true; for (i=2;i<=sqrt(GLGJSSYQYHFBQZ);i++){ if (GLGJSSYQYHFBQZ%i==0){ Explode false; break; //有其它因数直接 return false,break跳出循环,return 0讲真不是很规范,不过程序结尾应该return 0; } } } 作为大家的拥护者,我有职责将精华发给大家!!!!!!!
0.0分
0 人评分
母牛的故事 (C语言代码)浏览:739 |
1113题解浏览:823 |
回文数字 (C语言代码)浏览:2539 |
Hello, world! (C语言代码)浏览:766 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:721 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:523 |
C二级辅导-等差数列 (C语言代码)浏览:891 |
C语言程序设计教程(第三版)课后习题5.7 (C语言代码)浏览:820 |
A+B for Input-Output Practice (I) (C语言代码)浏览:451 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:751 |