用户:|宸宸|查看:11 回复:4 评论:11 创建时间:2024-07-24T21:37:08
1407:笨小猴
时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】
笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!
这种方法的具体描述如下:假设𝑚𝑎𝑥𝑛是单词中出现次数最多的字母的出现次数,𝑚𝑖𝑛𝑛是单词中出现次数最少的字母的出现次数,如果𝑚𝑎𝑥𝑛−𝑚𝑖𝑛𝑛是一个质数,那么笨小猴就认为这是个𝐿𝑢𝑐𝑘𝑦 𝑊𝑜𝑟𝑑(幸运单词),这样的单词很可能就是正确的答案。
注:情景为题目描述,训练师请勿模仿。
【输入】只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。
【输出】共两行,第一行是一个字符串,假设输入的的单词是𝐿𝑢𝑐𝑘𝑦 𝑊𝑜𝑟𝑑,那么输出“𝐿𝑢𝑐𝑘𝑦 𝑊𝑜𝑟𝑑”,否则输出“𝑁𝑜 𝐴𝑛𝑠𝑤𝑒𝑟”;
第二行是一个整数,如果输入单词是𝐿𝑢𝑐𝑘𝑦 𝑊𝑜𝑟𝑑,输出𝑚𝑎𝑥𝑛−𝑚𝑖𝑛𝑛的值,否则输出0。
【输入样例】error【输出样例】
Lucky Word 2【提示】
样例输入:
样例 #2:
olympic
样例输出:
样例 #2:
No Answer 0
______________________________________________________________________________________________________________
[代码示例]:
#include<bits/stdc++.h>
using namespace std;
bool ip(int x)
{
if(x==1 || x==0) return false;
for(int i=2;i<=x/i;i++)
{
if(x%i==0) return false;
}
return true;
}
int main()
{
string s;
int sum=0,ma=-0xfffffff,mi=0xfffffff;
cin>>s;
for(int i=0;i<s.size();i++)
{
for(int j=0;j<s.size();j++)
{
if(s[i]==s[j]) sum++;
if(j+1==s.size())
{
if(sum>ma) ma=sum;
if(sum<mi && sum!=0) mi=sum;
sum=0;
continue;
}
}
}
if(ip(ma-mi)) cout<<"Lucky Word"<<endl<<ma-mi;
else cout<<"No Answer"<<endl<<"0";
return 0;
}
有兴趣可以用python试试。
飞机大战:
#include<bits/stdc++.h> #include<conio.h> using namespace std; int px=24,onkey,zdsum=10; int s[48][18]; int stutas; struct zdfs{ int x,y; }zd[15]; void cleanplane(){ for(int i=0;i<48;i++){ for(int j=0;j<18;j++){ s[i][j]=0; } } return ; } void adplane(){ if(px<=1){ px++; adplane(); }else if(px>=47){ px--; adplane(); }else{ s[px][16]=1; s[px-1][17]=1; s[px][17]=1; s[px+1][17]=1; } return ; } void zdup(){ for(int i=0;i<15;i++){ if(zd[i].y>0){ zd[i].y--; s[zd[i].x][zd[i].y]=2; } } } void zdgo(){ for(int i=0;i<15;i++){ if(zd[i].y==0){ zd[i].x=px; zd[i].y=15; break; } } } void display(){ system("cls"); for(int i=1;i<=50;i++){ cout<<"_"; } cout<<endl; for(int i=0;i<18;i++){ cout<<"|"; for(int j=0;j<48;j++){ if(s[j][i]==0){ cout<<" "; }else if(s[j][i]==1){ cout<<"█"; }else if(s[j][i]==2){ cout<<"."; } } cout<<"|"<<endl; } for(int i=0;i<50;i++){ cout<<"_"; } cout<<endl<<"按AD键移动,空格攻击,Esc再按任意键退出"<<endl; if(zdsum==0){ cout<<"您没有子弹了,请及时按“F”键填弹"; } if(stutas==1){ cout<<"您没有足够的子弹"; stutas=0; }else if(stutas==2){ cout<<"子弹打完才能填弹哦"; stutas=0; } return ; } void makevs(){ return ; } int main(){ adplane(); display(); while(true){ adplane(); if(_kbhit()){ onkey=_getch(); if(onkey==97){ px--; }else if(onkey==100){ px++; }else if(onkey==27){ break; }else if(onkey==32){ if(zdsum>0){ zdgo(); zdsum--; }else{ stutas=1; } }else if(onkey==102){ if(zdsum>0){ stutas=2; }else{ zdsum=10; } } cleanplane(); zdup(); adplane(); display(); } } system("pause"); cout<<"感谢您的游玩"<<endl<<"Thank you for playing"; return 0; }点赞0
评论