0%

问题描述

​ 1到n号小朋友顺时针坐一圈,围圈报数。
​ 若一个小朋友报的数为k的倍数或其末位数(即数的个位)为k,则该小朋友被淘汰。

​ 当只剩一个小朋友时,该小朋友获胜。

  例如,当n=5, k=2时:
  1号小朋友报数1;
  2号小朋友报数2淘汰;
  3号小朋友报数3;
  4号小朋友报数4淘汰;
  5号小朋友报数5;
  1号小朋友报数6淘汰;
  3号小朋友报数7;
  5号小朋友报数8淘汰;
  3号小朋友获胜。

  给定nk,请问最后获胜的小朋友编号为多少?

阅读全文 »

题目背景

二十四点:使用 3 个加减乘除运算使得 4张纸牌上数字的运算结果为 24。

题目描述

定义每一个游戏由 4 个从 1-9 的数字和 3个四则运算符组成,保证四则运算符将数字两两隔开,不存在括号和其他字符,运算顺序按照四则运算顺序进行。

其中加法用符号 + 表示,减法用符号 -表示,乘法用小写字母 x 表示,除法用符号 / 表示。在游戏里除法为整除,例如 2 / 3 = 0,3 / 2 = 1, 4 / 2 = 2。
老师给了你 n 个游戏的解,请你编写程序验证每个游戏的结果是否为 24 。

阅读全文 »

map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<map>

map<int, string> stu; // 定义一个map对象
map<int, string>::iterator it; //定义相应的迭代器(用于遍历)
//插入元素:用"array"方式插入
stu[123] = "student_first";
stu[456] = "student_second";
//迭代
for(it=stu.begin();it!=stu.end();it++){
cout<<it->first; //first表示key
cout<<it->second; //second表示value
}
/*
map.count(Key)返回值为1或者0,1返回存在,0返回不存在。因为在map中数据的Key值都是不同的,所以被count的数要么存在1次,要么不存在。

begin()指向第一个元素
end()指向最后一个元素的后一个元素
*/

阅读全文 »

文件输入输出

使用重定向

用freopen可以直接变成由文件输入输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#include<iostream>
using namespace std;

int main(){
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout); //如果不存在,将创建

printf("ooo\n");
cout<<"123"<<endl;
//以上两种方式都可以将数据直接写入out.txt文件
//每次运行,out.txt会被重写

return 0;
}

重定向方式写起来简单自然,但是不能同时读写文件和标准输入输出。

阅读全文 »

分号

在 JavaScript 中,用分号来结束语句是可选的。

对代码行进行拆行

可以在文本字符串中使用反斜杠对代码行进行换行。下面的例子会正确地显示:

1
2
document.write("你好 \
世界!");

不过,不能像这样拆行:

1
2
document.write \ 
("你好世界!");

注释

采用 // 和 / / 两种。

变量

声明

JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。

当您声明新变量时,可以使用 “new” 来声明其类型(首字母大写):

阅读全文 »

原题链接

http://www.dotcpp.com/oj/problem1074.html

题目描述

定理:把一个至少两位的正整数的个位数字去掉,再从余下的数中减去个位数的5倍。当且仅当差是17的倍数时,原数也是17的倍数 。

例如,34是17的倍数,因为3-20=-17是17的倍数;201不是17的倍数,因为20-5=15不是17的倍数。输入一个正整数n,你的任务是判断它是否是17的倍数。

阅读全文 »