网站制作的内容什么好,网站网页的书签怎么做,怎么做盗版视频网站吗,上海网站建设一般多少钱明明的随机数
题目描述
明明想在学校中请一些同学一起做一项问卷调查#xff0c;为了实验的客观性#xff0c;他先用计算机生成了N个1到1000之间的随机整数#xff08;N≤100#xff09;#xff0c;对于其中重复的数字#xff0c;只保留一个#xff0c;把其余相同的数…明明的随机数
题目描述
明明想在学校中请一些同学一起做一项问卷调查为了实验的客观性他先用计算机生成了N个1到1000之间的随机整数N≤100对于其中重复的数字只保留一个把其余相同的数去掉不同的数对应着不同的学生的学号。然后再把这些数从小到大排序按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入
有2行第1行为1个正整数表示所生成的随机数的个数N 第2行有N个用空格隔开的正整数为所产生的随机数。
输出
也是2行第1行为1个正整数M表示不相同的随机数的个数。第2行为M个用空格隔开的正整数为从小到大排好序的不相同的随机数。
样例输入
10
20 40 32 67 40 20 89 300 400 15样例输出
8
15 20 32 40 67 89 300 400
解题思路
·题目输出要求有去重经过之前的题目我们已经知道去重可以使用set并且题目还有要求要从小到大排序所以使用set在本题使用正好合适
代码如下
#include iostream
#include vector
#include setusing namespace std;int main() {int n; cin n;vectorint nums(n);setint ans;for (int i 0; i n; i) {cin nums[i];ans.insert(nums[i]);//将数组中元素存入set中}cout ans.size()endl;for (auto it : ans) {cout it ;}return 0;
}
总结
本题并没有什么逻辑或者代码实现上的困难只需要知道只用set工具即可 6翻了
题目描述
“666”是一种网络用语大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”意思是“6翻了”实在太厉害的意思。如果你以为这就是厉害的最高境界那就错啦 —— 目前的最高境界是数字“27”因为这是 3 个 “9”
本题就请你编写程序将那些过时的、只会用一连串“6666……6”表达仰慕的句子翻译成最新的高级表达。
输入格式
输入在一行中给出一句话即一个非空字符串由不超过 1000 个英文字母、数字和空格组成以回车结束。
输出格式
从左到右扫描输入的句子如果句子中有超过 3 个连续的 6则将这串连续的 6 替换成 9但如果有超过 9 个连续的 6则将这串连续的 6 替换成 27。其他内容不受影响原样输出。
输入样例
it is so 666 really 6666 what else can I say 6666666666输出样例
it is so 666 really 9 what else can I say 27
解题思路
·会有的同学想要直接使用替换但是直接使用替换会有些麻烦比如长度边界可以尝试用另一种思路直接输出但是遇到符合条件的再改变
·定义整形变量num用于记录连续出现的数字6
·如果字符是6则num
·若字符不是6则根据num的值进行操作num9输出27num3则输出9num不超过3则连续输出num个数字6
·结束当前字符并将num重置为0
代码如下
#include iostream
#include stringusing namespace std;int main() {string s; getline(cin, s);int num 0;for (int i 0; i s.length(); i) {if (s[i] 6) {num;}else {if (num 9) cout 27;else if (num 3) cout 9;else {while (num--) {cout 6;}}cout s[i];num 0;}}return 0;
}
总结
还是经常说的要将复杂问题简单化找出其中的逻辑思路不要死钻一个点 吃火锅
题目描述
本题要求你实现一个程序自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。
输入格式
输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息信息为非空字符串仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时输入结束此行不算在朋友信息里。
输出格式
首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息检查其中是否包含 chi1 huo3 guo1并且统计这样厉害的信息有多少条。在第二行中首先输出第一次出现 chi1 huo3 guo1 的信息是第几条从 1 开始计数然后输出这类信息的总条数其间以一个空格分隔。题目保证输出的所有数字不超过 100。
如果朋友从头到尾都没提 chi1 huo3 guo1 这个关键词则在第二行输出一个表情 -_-#。
输入样例 1
Hello!
are you there?
wantta chi1 huo3 guo1?
thats so li hai le
our story begins from chi1 huo3 guo1 le
.
输出样例 1
5
3 2输入样例 2
Hello!
are you there?
wantta qi huo3 guo1 chi1huo3guo1?
thats so li hai le
our story begins from ci1 huo4 guo2 le
.
输出样例 2
5
-_-#
解题思路
·定义俩个字符串一个用来输入字符串s1一个用来存放目标字符串s2
·定义一个 sum1 用来统计信息总行数一个sum2用来统计关键词总条数一个idx 记录首场出现信息的行数
·用while循环输入字符串s1如果s1是结束字符.的话则跳出循环
·sum1进行记录信息的个数用find寻找s1中是否存在s2,如果存在用sum2进行记录如果是第一次出现用idx进行记录是第几行出现的
·最后根据sum2也就是s1中有s2信息的个数进行相对应的输出
代码如下
#include iostream
#include stringusing namespace std;int main() {string s1, s2;s2 chi1 huo3 guo1;int sum1 0;int sum2 0;int index;while (getline(cin, s1)) {if (s1 .)break;sum1;if (s1.find(s2) ! -1) {sum2;if (sum2 1)index sum1;}}if (sum2) {cout sum1 endl;cout index sum2 endl;}else {cout sum1 endl;cout -_-# endl;}return 0;
}