顺序查找-判断质数/记录出现次数

描述

笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!

这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。

输入

只有一行,是一个单词,其中只可能出现小写字母,并且长度小于100。

输出

共两行,第一行是一个字符串,假设输入的的单词是Lucky Word,那么输出“Lucky Word”,否则输出“No Answer”;
第二行是一个整数,如果输入单词是Lucky Word,输出maxn-minn的值,否则输出0。

#include<cmath>//要用到其中求开方的函数sqrt() 
#include<iostream>
#include<cstring>//要用到其中求字符串长度的函数size() 
using namespace std;
bool prime(int n)
{if(n<2) return false;else{for (int i=2;i<int(sqrt(float(n)));i++)if(n%i==0) return false;}return true;
}
//判断质数
int main() 
{int a[26],maxn=0,minn=1000;string s;int i;cin>>s;memset(a,0,sizeof(a));for (i=0;i<s.length();i++)a[s[i]-'a']+=1;for(i=0;i<26;i++){if(maxn<a[i])maxn=a[i];if(minn>a[i]&&a[i]!=0)minn=a[i];}if(prime(maxn-minn)==true)cout<<"Lucky Word"<<endl<<(maxn-minn)<<endl;elsecout<<"No Answer"<<endl<<0<<endl;system("pause");return 0;
}

知识1:判断质数改写while:

int prime(int x)   //判断质数;1是质数 0不是质数{int j=2;if(x<2) return 0;while (j<int(sqrt(float(x)))) {if(x%j==0)return 0;j++;}return 1;}

知识2:判断字符出现个数

string s;
int t[26];
cin>>s;
n=s.size();
for (int i=0;i<n;i++)t[s[i]-'a']++;

知识点3:memset初始化

#include<stdio.h>
#include<string.h>int main(){char str[] = "beautiful earth";memset(str, '*', 6);printf("%s", str);
}Output:
******ful earth

上述代码把 str 的前六个字节用 * 填满,那么能不能用下面的方法把 arr 的前六个数字初始化成 1 呢?

int arr[15];
memset(arr, 1, 6); //错误代码

答:不可。

memset() 的用法是:

#include <string.h>
void *memset(void *s, int c, size_t n); //语法

 memset() 函数把 s 指向的一块内存中每个字节的值设置为 c,内存的大小是 n 个 bytes

强调,第三个参数 n 决定了开辟的内存有多少个字节。

一个 char 占一个 byte,一个 int 占 4 个bytes。所以在上面的案例中, char 数组的初始化, 第三个参数填 6 就能初始化 6 个;如果要初始化一个 int 数组,实现前 6 个元素是 1 ,第三个参数不能是 6。

那么,这样写是正确的吗?

int arr[15];
memset(arr, 1, sizeof(int) * 6); // 错误示范

我们尝试跑一下 :

 16843009 这个数字是怎么来的?不要忘记,memset() 中,是按 byte 赋值的,那么把 4 个 byte 赋值为 1, int 值并不是 1,而是:

所以,不能用 memset() 初始化数组为 1 。但是可以将数组高效地初始化为 0 或 -1(只能是0 或 -1。原理:补码表示法, -1 的补码为: 0xFFFFFFFF,在内存上是连续的, -2 就不行,-2 是 0xFFFFFFFE) 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/567543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iphone录屏没内部声音_安卓手机如何录屏?手机高清录屏指南

安卓手机如何录屏&#xff1f;师兄最近迷上了玩输出&#xff0c;输出战绩可以说是可圈可点。有时候想要炫耀下自己的战况&#xff0c;操作的时候截屏不方便。部分小伙伴的手机截图过后还需要编辑或者左滑图片&#xff0c;图片也不能展示自己优秀的操作&#xff01;其实录屏的方…

表变量是什么_DAX学习:使用VAR定义变量

前面介绍如何使用DAX生成日期表的时候,使用了VAR&#xff0c;有人留言问这个VAR怎么理解&#xff0c;那么这篇文章就来介绍VAR以及它的用法。VAR是VARIABLE的缩写&#xff0c;意思为变量&#xff0c;任何一个编程语言中&#xff0c;变量都是一个非常重要的基础概念&#xff0c;…

手机连接电脑 不显示android phone

百度各种办法&#xff0c;下载各种驱动。结果&#xff0c;结果&#xff1a; 竟然是在设备管理器中-右击-显示隐藏的设备类型。 androidd phone显示啦。。 花费了一晚上的时间。。。。

苹果隐藏app_iOS 14的隐藏功能盘点:不知道等于白更新!

iOS 14的更新已经过去一阵子了,相信大家都被改变桌面布局、修改充电提示音等五花八门的功能吸引了。但小黑今天要和大家说一说,那些iOS 14中隐藏的功能,这些功能并没有在更新中提到,但个个都好用!声音识别功能日常生活中,我们对每种不同声音的识别算是基本操作了,但对于手机而言…

unittest-常见问题解决方案记录

1、没有报错&#xff0c;但显示run 0 tests 解决方案&#xff1a;查看测试用例是否以test开头 2、命名为test-01,导包错误 解决方案&#xff1a;python文件夹命名不能使用中划线&#xff0c;修改中划线为下划线&#xff0c;即可导包正确。 3、代码运行成功&#xff0c;显示…

svn冲突怎么解决_管理者怎么处理员工冲突?解决下属冲突的6个方法

公司、部门、项目组&#xff0c;多么优秀的团队都无法避免内部冲突&#xff0c;职场冲突是一种常见的职场现象&#xff0c;这种冲突不仅会给团队和个人带来的重大的影响。那么团队出现了冲突&#xff0c;是不是就不会继续向前了呢&#xff1f;答案是否定的&#xff0c;只要管理…

modbus tcp主站和从站_【智】S7200PLC与台达变频器MODBUS轮询实时读取详解

大家好&#xff0c;我是微控小智&#xff0c;今天又跟大家见面了。学习不是一蹴而就&#xff0c;需要坚持&#xff0c;做技术亦是如此&#xff0c;厚积才能博发。上次分享的S7-200PLC与台达VFD_M变频器Modbus通讯案例程序&#xff0c;是采用SM0.5时钟脉冲接通MODBUS指令&#x…

华为gsm模块_出货量全球第一,华为阿里腾讯都是其客户,上海移远通信牛在哪?...

近些年来&#xff0c;我们明显感受到了科技进步带来的便捷&#xff0c;微信支付、支付宝付款早已经成为绝大多数人的支付方式&#xff1b;交水费、电费等再也不用去缴费大厅排队&#xff0c;手机就能一键实现&#xff1b;出门也不怕迷路了&#xff0c;滴滴出行、手机地图等让你…

判别两棵树是否相等 设计算法_一文看懂生成对抗网络 - GANs?(附:10种典型算法+13种应用)...

生成对抗网络 – GANs 是最近2年很热门的一种无监督算法&#xff0c;他能生成出非常逼真的照片&#xff0c;图像甚至视频。我们手机里的照片处理软件中就会使用到它。本文将详细介绍生成对抗网络 – GANs 的设计初衷、基本原理、10种典型算法和13种实际应用。GANs的设计初衷一句…

sql语句 int(11)含义误区

使用sql中 int(11)存储手机号错误&#xff01;&#xff01;&#xff01;&#xff01; 这些类型&#xff0c;是定长的&#xff0c;其容量是不会随着后面的数字而变化的&#xff0c;其值的范围是确定的。 比如int(11)和int(8)&#xff0c;都是一样的占4字节。tinyint(1)和tinyin…

python保存图片到指定路径_使用Python将不同大小照片制作为GIF动画2

导读&#xff1a;本文介绍如何使用Python将不同大小的照片制作为GIF动画&#xff0c;文末附源代码。阅读完本文&#xff0c;你将学会使用Python编写程序&#xff0c;将不同大小的照片制作为心仪的GIF动画。在上一篇文章里&#xff0c;介绍了使用Python和imageio&#xff0c;不改…

GitHub访问慢-FastGithub下载及使用

很多需要用到的脚本及软件会先发布在GitHub上&#xff0c;所以经常需要访问GitHub&#xff0c;但是每次都会卡在跳转到GitHub的步骤&#xff0c;就是还没开始就可以结束了。 之前尝试过手动修改host文件来解决网站的访问问题 以及更换网络但还是有时候无法如愿的访问GitHub Fa…

android r 编译找不到头文件_「投稿」iOS逆向——砸壳与反编译

作者&#xff1a;疯狂的蛋神近来对iOS逆向十分感兴趣&#xff0c;就在业余时间里自己在上网找了各种资料学习&#xff0c;发现许多资料对于一些细节描述的不够详细&#xff0c;所以也踩了很多坑&#xff0c;我也将自己踩的一些坑总结出来&#xff0c;希望对大家有所帮助。注&am…

python-类思想-实现简单增删查改

class Person:def __init__(self,name, phone):self.UserInfo {name: name,phone: phone}class Opt:def __init__(self):self.person []def add_person(self, user_info):print(增加)self.person.append(user_info)def delete_person(self):print(删除)self.person.pop()def …

vb microsoft.xmlhttp 获取所有超链接_编写我的第一个VB程序

若不是因为新冠肺炎疫情影响&#xff0c;下面的内容应该是在学校的课堂上给学生们讲解的&#xff0c;如今采用这种方法&#xff0c;也是迫不得已。软件的使用在中学信息学科课堂中&#xff0c;往往普遍存在于小学和初中课堂&#xff0c;而在高中课堂上演示软件操作&#xff0c;…

C++ 偏微分数值计算库_Windows下RTCGAToolbox库下载TCPA数据(RPPA)学习笔记

1. RTCGAToolbox库加载library(RTCGAToolbox)2. 下载TCPA数据2.1 下载代码# Get the last run dates lastRunDate <- getFirehoseRunningDates()[1]# get RPPA data and clinical data for LGG lgg.data <- getFirehoseData(dataset "LGG",gistic2_Date getF…

MySQL安装之没有配置向导

解决方案&#xff1a; <1>安装MySQL服务 首先我们先进入mysql的安装目录下的bin目录 之后打开DOS命令窗口&#xff0c;进入该目录下&#xff08;一定要进入该目录&#xff0c;否则操作错误&#xff09;&#xff0c;然后执行mysqld --install命令&#xff0c;如下&…

unet图像分割_UNet++解读 + 它是如何对UNet改进 + 作者的研究态度和方式

UNet论文: 地址UNet论文翻译:地址UNet源代码: 地址UNet作者在知乎上进行了解读,里面还有视频的讲解,深入人心.里面有一句话令我印象深刻,我总结下: 很多论文给出了他们建议的网络结构&#xff0c;其中包括非常多的细节&#xff0c;比如用什么卷积&#xff0c;用几层&#xff0c…

python中0、1、True、False、if条件

总结&#xff1a; 无论是python还是C&#xff0c;true1&#xff0c;false0 非零就是true&#xff0c;此说法只应用在判断条件中 1、python中0、1、True、False >>> print(True 1) >>> print(True 2) >>> print(False 0) >>> print(…

labview my_fpga开发套件下载_LabVIEW面向对象的ActorFramework(1)

本系列文章主要阐述以下几个问题&#xff1a;&#xff08;1&#xff09;什么是面向对象编程&#xff1f;&#xff08;2&#xff09;为什么要学习面向编程&#xff1f;&#xff08;3&#xff09;LabVIEW面向编程学习为什么有点难&#xff1f;&#xff08;4&#xff09;LabVIEW面…