1069 微博转发抽奖

2023-11-07 07:01
文章标签 微博 转发 抽奖 1069

本文主要是介绍1069 微博转发抽奖,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一.问题:

  小明 PAT 考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔 N 个人就发出一个红包。请你编写程序帮助他确定中奖名单。

输入格式:

输入第一行给出三个正整数 M(≤ 1000)、N 和 S,分别是转发的总量、小明决定的中奖间隔、以及第一位中奖者的序号(编号从 1 开始)。随后 M 行,顺序给出转发微博的网友的昵称(不超过 20 个字符、不包含空格回车的非空字符串)。

注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。

输出格式:

按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出 Keep going...

输入样例 1:

9 3 2
Imgonnawin!
PickMe
PickMe
LookHere
Imgonnawin!
TryAgainAgain
TryAgainAgain
Imgonnawin!
TryAgainAgain

输出样例 1:

PickMe
Imgonnawin!
TryAgainAgain

输入样例 2:

2 3 5
Imgonnawin!
PickMe

输出样例 2:

Keep going...

二.思路:

1.弄两个二维字符数组,一个用来存储刚开始输入的M个转发的ID(shared_num[1001][25]),另一个用来存储中奖的ID(win_prices[1001][25]).

2.判断输入的S是否大于M,大于则不可能有人中奖,直接输出"Keep going..."

3.如果S小于M,则从第S个序号开始抽取获奖者ID放入win_prices[1001][25]然后每隔N个就抽出一个ID,先判断该ID是否以及出现在win_prices[1001][25]里面,如果已经有了,则往下滑一位,重复上一步判断ID是否已经出现在win_prices[1001][25]里面,直到遇到新的ID,将其存进去,然后在此基础上跳N个继续找新ID,直到超过M为止。

4.这里注意,序号是从1开始,而数组下标是从0开始,也就是说,刚开始的第一个中奖者的序号S,在数组中的下标是S-1

三.代码实现:

#include<stdio.h>
#include<string.h>//从win_prices[0]到win_prices[end] 判断该微博ID是否已经领过奖(是否已经存在于win_prices),领过了//返回0;没领过返回1
int Is_get(char win_prices[][25],char *ID,int end)
{if(end == 0)//第一个肯定没领过奖,直接返回1{return 1;}for(int i = 0;i < end;i++){if(strcmp(win_prices[i],ID) == 0){return 0;}}return 1;
}int main()
{//输入数据int M = 0;//转发的总量int N = 0;//小明决定的中奖间隔int S = 0;//第一位中奖者的序号(编号从 1 开始)int count = 0;//用来记录win_prices里面有多少获奖者scanf("%d %d %d",&M,&N,&S);char shared_num[1001][25];char win_prices[1001][25];//输入转发的总量for(int i = 0;i < M;i++){scanf("%s",shared_num[i]);}//提取中奖名单if(S > M)//如果第一位中奖者的序号大于转发的总量,直接输出Keep going...{printf("Keep going...\n");}else{//每隔N个提取一个人的ID,然后接着判断是否重复,这里注意第一个中奖者在数组里面的下标应该为S-1for(int i = S-1;i < M;i += N){//如果没领过奖,则把他加到获奖名单里面if(Is_get(win_prices,shared_num[i],count)){strcpy(win_prices[count],shared_num[i]);count++;}//如果领过奖了,移动到下一位else{//循环判断,直到遇到的shared_num[i]是没出现过的while(!Is_get(win_prices,shared_num[i],count)){i++;}//此时遇到的shared_num[i]是没出现过的,添加进win_pricesstrcpy(win_prices[count],shared_num[i]);count++;}}}//输出中奖名单for(int j = 0;j < count;j++){printf("%s\n",win_prices[j]);}return 0;
}

这篇关于1069 微博转发抽奖的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/362020

相关文章

在struts.xml中,如何配置请求转发和请求重定向!

<span style="font-size:18px;"><span style="white-space:pre"> </span><!--<strong>下面用请求转发action </strong>,<strong>这样过去id不会丢</strong>,如果用重定向的话,id会丢 --><result name="updatePopedom"<span style="color:#ff00

请解释JSP中的九大内置对象及其作用。什么是Java Web中的请求转发和重定向?它们有什么区别?

请解释JSP中的九大内置对象及其作用。 JSP(JavaServer Pages)中的九大内置对象(也称为隐式对象或自动对象)是JSP容器为每个页面提供的Java对象,这些对象在JSP页面被转换成Servlet时自动可用,无需显式声明。这些对象极大地简化了JSP页面的开发,因为它们提供了对Web应用程序中常见功能的直接访问。以下是九大内置对象及其作用的详细解释: request:javax.

Nginx跨域运行案例:云台控制http请求,通过 http server 代理转发功能,实现跨域运行。(基于大华摄像头WEB无插件开发包)

文章目录 引言I 跨域运行案例开发资源测试/生产环境,Nginx代理转发,实现跨域运行本机开发运行 II nginx的location指令Nginx配置中, 获取自定义请求header头Nginx 配置中,获取URL参数 引言 背景:全景监控 需求:感知站点由于云台相关操作为 http 请求,http 请求受浏览器跨域限制,不能直接访问,因此需要进行 http 的代理,实

[转发] 负载均衡的服务器集群上如何进行缓存和会话数据的管理

会话数据管理方法 1. 不存储Session 对于一些不需要记录用户状态的Web应用,采用这种Stateless方式是最恰当的方式。 2. 基于Cookie的Session共享 这种策略也被称为客户端Session,即不将Session信息存储于服务器端,而是存储于客户端。这同时,也会带来一定的安全问题,因为Cookie是存储于客户端中的,也就意味着客户端可以修改Cooki

[置顶]定向爬虫 - Python模拟新浪微博登录

当我们试图从新浪微博抓取数据时,我们会发现网页上提示未登录,无法查看其他用户的信息。 模拟登录是定向爬虫制作中一个必须克服的问题,只有这样才能爬取到更多的内容。 实现微博登录的方法有很多,一般我们在模拟登录时首选WAP版。 因为PC版网页源码中包括很多的js代码,提交的内容也更多,不适合机器模拟登录。 我们实现微博登录的大体思路是这样的: 用抓包工具把正常登录时要提交的字段都记录下来

Kubenetes 中使用 Traefik 作为 Ingress 转发流量

Kubenetes 中使用 Traefik 作为 Ingress 转发流量 Ingress 就是 Kubernetes 机器外访问集群的入口,将请求的 URL 转发到不同的 Service 上,相当于 Nginx 等代理服务器 路由信息由 Ingress Controller 提供,Ingress Controller 可以理解为监视器,不断请求 Kubernetes API 实时感知 Serv

猫猫学iOS 之微博项目实战(12)发送微博自定义工具条代理实现点击事件

猫猫分享,必须精品 原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 二:封装好的工具条 NYComposeToolbar.h 带代理方法 #import <UIKit/UIKit.h>typedef enum {NYComposeToolbarButtonTypeCamera, // 拍照NYCompo

猫猫学iOS 之微博项目实战(11)发送微博自定义TextView实现带占位文字

猫猫分享,必须精品 原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 一:效果 二:代码: 由于系统自带的UITextField:和UITextView:不能满足我们的需求,所以我们需要自己设计一个。 UITextField: 1.文字永远是一行,不能显示多行文字 2.有placehoder属性设置占位文字 3

猫猫学iOS 之微博项目实战(10)微博cell中图片的显示以及各种填充模式简介

猫猫分享,必须精品 原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243 :一效果 如果直接设置会有拉伸等等的状况,这里主要介绍图片显示的一些细节 二:代码 代码实现其实很简单,微博当中用了一个photos来存放九宫格这些图片,然后用了一个photo类来做每个photo,并且在上面显示gif等的样式,很多很多小技巧,直接

Web前端 lucky-canvas【大转盘 九宫格 老虎机】抽奖插件(适用JS/TS、Vue、React、微信小程序、Uniapp和Taro)

Web前端 lucky-canvas 抽奖插件(JS/TS、Vue、React、微信小程序、Uniapp和Taro) 基于 JS + Canvas 实现的【大转盘 & 九宫格 & 老虎机】抽奖,致力于为 WEB 前端提供一个功能强大且专业可靠的营销组件,只需要通过简单配置即可实现自由化定制,帮助你快速的完成产品需求 自由配置 奖品 / 文字 / 图片 / 颜色 / 按钮均可自由配置;支持同步