
C++语言基础——函数
Alex_McAvoy
想要成为渔夫的猎手
展开
-
确定进制(信息学奥赛一本通-T1413)
【题目描述】6*9=42 对于十进制来说是错误的,但是对于 13 进制来说是正确的。即 6(13)*9(13)=42(13),而 42(13)=4*131+2*130=54(10)。你的任务是写一段程序,读入三个整数 p、q和 r,然后确定一个进制 B(2≤B≤40) 使得 p*q=r。如果 B 有很多选择, 输出最小的一个。例如:p=11, q=11, r=121.则有11(3)*...原创 2018-03-10 22:27:36 · 9983 阅读 · 5 评论 -
判决素数个数(信息学奥赛一本通-T1409)
【题目描述】输入两个整数X和Y,输出两者之间的素数个数(包括X和Y)。【输入】两个整数X和Y(1 ≤ X,Y ≤ 105)。【输出】输出一个整数,表示X,Y之间的素数个数(包括X和Y)。【输入样例】1 100【输出样例】25【源程序】#include<iostream>#include<cmath>using names...原创 2018-03-06 21:36:53 · 7598 阅读 · 3 评论 -
最大质因子序列(信息学奥赛一本通-T1410)
【题目描述】任意输入两个正整数m,n(1<m<n≤5000),依次输出m到n之间每个数的最大质因子(包括m和n;如果某个数本身是质数,则输出这个数自身)。【输入】一行,包含两个正整数m和n,其间以单个空格间隔。【输出】一行,每个整数的最大质因子,以逗号间隔。【输入样例】5 10【输出样例】5,3,7,2,3,5【源程序】#include...原创 2018-03-06 22:13:48 · 10294 阅读 · 5 评论 -
区间内的真素数(信息学奥赛一本通-T1411)
【题目描述】找出正整数M和N之间(N不小于M)的所有真素数。例如,11,13均为真素数,因为11的反序还是为11,13的反序为31也为素数。真素数的定义:如果一个正整数P为素数,且其反序也为素数,那么P就为真素数。【输入】输入两个数M和N,空格间隔,1≤M≤N≤100000。【输出】按从小到大输出M和N之间(包括M和N)的真素数,逗号间隔。如果之间没有真素数,则输出N...原创 2018-03-06 22:01:19 · 12255 阅读 · 2 评论 -
素数个数(信息学奥赛一本通-T1151)
【题目描述】编程求2~n(n为大于2的正整数)中有多少个素数。【输入】输入n(2≤n≤50000)。【输出】素数个数。【输入样例】10【输出样例】4【源程序】#include<iostream>#include<cmath>using namespace std;bool judge(int x);int main(...原创 2018-03-05 22:00:35 · 17593 阅读 · 0 评论 -
求正整数2和n之间的完全数(信息学奥赛一本通-T1150)
【题目描述】求正整数2和n之间的完全数(一行一个数)。完全数:因子之和等于它本身的自然数,如6=1+2+3【输入】输入n。【输出】一行一个数,按由小到大的顺序。【输入样例】7【输出样例】6【源程序】#include<iostream>using namespace std;int judge(int x);int main()...原创 2018-03-05 21:50:25 · 21278 阅读 · 4 评论 -
再求f(x,n)(信息学奥赛一本通-T1167)
【题目描述】已知用递归函数求解。【输入】第一数是x的值,第二个数是n的值。【输出】函数值,保留两位小数。【输入样例】1 2【输出样例】0.40【源程序】#include<iostream>#include<cstdio>#include<cmath>using namespace std;doub...原创 2018-03-11 23:04:22 · 8689 阅读 · 2 评论 -
求1+2+3+...(信息学奥赛一本通-T1158)
【题目描述】用递归的方法求1+2+3+……+N的值。【输入】输入n。【输出】输出和。【输入样例】5【输出样例】15【源程序】#include<iostream>using namespace std;int calculate(int n);int main(){ int n; cin>>n;//输...原创 2018-03-11 15:35:42 · 9073 阅读 · 1 评论 -
斐波那契数列(信息学奥赛一本通-T1159)
【题目描述】用递归函数输出斐波那契数列第n项。0,1,1,2,3,5,8,13……【输入】一个正整数n,表示第n项。【输出】第n项是多少。【输入样例】3【输出样例】1【源程序】#include<iostream>using namespace std;int calculate(int n);int main(){ i...原创 2018-03-11 15:39:28 · 11245 阅读 · 0 评论 -
倒序数(信息学奥赛一本通-T1160)
【题目描述】输入一个非负整数,输出这个数的倒序数。例如输入123,输出321。【输入】输入一个非负整数(保证个位不为零)。【输出】输出倒序的数。【输入样例】123【输出样例】321【源程序】#include<iostream>using namespace std;void calculate(int n);int main()...原创 2018-03-11 15:44:47 · 13024 阅读 · 1 评论 -
转进制(信息学奥赛一本通-T1161)
【题目描述】用递归算法将一个十进制数X转换成任意进制数M(M≤16)。【输入】一行两个数,第一个十进制数X,第二个为进制M。【输出】输出结果。【输入样例】31 16 {将十进制31转化为十六进制数}【输出样例】1F【源程序】#include<iostream>using namespace std;void calculate(in...原创 2018-03-11 15:52:47 · 12697 阅读 · 2 评论 -
字符串逆序(信息学奥赛一本通-T1162)
【题目描述】输入一串以‘!’结束的字符,按逆序输出。【输入】如题述。【输出】如题述。【输入样例】abc!【输出样例】cba【源程序】#include<iostream>#include<cstdio>using namespace std;void calculate(int n);char ch[10000];i...原创 2018-03-11 15:57:59 · 11810 阅读 · 5 评论 -
阿克曼(Ackmann)函数(信息学奥赛一本通-T1163)
【题目描述】阿克曼(Ackmann)函数A(m,n)中,m,n定义域是非负整数(m≤3,n≤10),函数值定义为:akm(m,n) = n+1; (m=0时)akm(m,n) = akm(m-1,1); (m>0,n=0时)akm(m,n) = akm(m-1,akm(m, n-1)); (m,n>0时)【输入】输入m和n。【输出】函...原创 2018-03-11 22:56:23 · 8575 阅读 · 0 评论 -
digit函数(信息学奥赛一本通-T1164)
【题目描述】在程序中定义一函数digit(n,k),它能分离出整数n从右边数第k个数字。【输入】正整数n和k。【输出】一个数字。【输入样例】31859 3【输出样例】8【源程序】#include<iostream>using namespace std;int calculate(int n,int k);int main()...原创 2018-03-11 23:02:51 · 10422 阅读 · 5 评论 -
Hermite多项式(信息学奥赛一本通-T1165)
【题目描述】用递归的方法求Hermite多项式的值对给定的x和正整数n,求多项式的值,并保留两位小数。【输入】给定的n和正整数x。【输出】多项式的值。【输入样例】1 2【输出样例】4.00【源程序】#include<iostream>#include<cstdio>using namespace std;dou...原创 2018-03-11 23:03:34 · 10174 阅读 · 2 评论 -
求f(x,n)(信息学奥赛一本通-T1166)
【题目描述】已知计算f的值。【输入】输入x和n。【输出】函数值,保留两位小数。【输入样例】4.2 10【输出样例】3.68【源程序】#include<iostream>#include<cstdio>#include<cmath>using namespace std;double calcula...原创 2018-03-11 23:04:21 · 10972 阅读 · 1 评论 -
C++语言基础 —— 函数
【函数】求正整数2和n之间的完全数(信息学奥赛一本通-T1150):点击这里 素数个数(信息学奥赛一本通-T1151):点击这里 最大数max(x,y,z)(信息学奥赛一本通-T1152):点击这里 绝对素数(信息学奥赛一本通-T1153):点击这里 亲和数(信息学奥赛一本通-T1154):点击这里 回文三位数(信息学奥赛一本通-T1155):点击这里 求π的值(信息学奥赛一本通...原创 2019-06-14 18:56:21 · 2865 阅读 · 0 评论 -
素数回文数的个数(信息学奥赛一本通-T1408)
【题目描述】求11到n之间(包括n),既是素数又是回文数的整数有多少个。【输入】一个大于11小于1000的整数n。【输出】11到n之间的素数回文数个数。【输入样例】23【输出样例】1【源程序】#include<iostream>#include<cmath>using namespace std;bool prime(...原创 2018-03-06 21:32:49 · 10877 阅读 · 0 评论 -
笨小猴(信息学奥赛一本通-T1407)
【题目描述】笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出现次数,minn是单词中出现次数最少的字母的出现次数,如果maxn-minn是一个质数,那么笨小猴就认为这是个Lucky Word,这样的单词很可能就是正确的答案。【输入】...原创 2018-03-10 21:27:22 · 11328 阅读 · 7 评论 -
二进制分类(信息学奥赛一本通-T1412)
【题目描述】若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。例如:(13)10=(1101)2,其中1的个数为3,0的个数为1,则称此数为A类数; (10)10=(1010)2,其中1的个数为2,0的个数也为2,称此数为B类数; (24)10=(11000)2,其中1的个数为2,0的个数为3,则称此数为B...原创 2018-03-10 22:12:24 · 11057 阅读 · 3 评论 -
最大数max(x,y,z)(信息学奥赛一本通-T1152)
【题目描述】已知:m=max(a,b,c)max(a+b,b,c)×max(a,b,b+c)m=max(a,b,c)max(a+b,b,c)×max(a,b,b+c)输入a,b,c,求m。把求三个数的最大数max(x,y,z)分别定义成函数和过程来做。【输入】输入a,b,c。【输出】求m,保留到小数点后三位。【输入样例】1 2 3【输出样例】0.200...原创 2018-03-05 22:13:34 · 14852 阅读 · 2 评论 -
绝对素数(信息学奥赛一本通-T1153)
【题目描述】如果一个自然数是素数,且它的数字位置经过对换后仍为素数,则称为绝对素数,例如13。试求出所有二位绝对素数。【输入】(无)【输出】所有二位绝对素数(由小到大,一个数一行)。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>#include<cmath>using namespac...原创 2018-03-05 22:20:29 · 16134 阅读 · 3 评论 -
回文三位数(信息学奥赛一本通-T1155)
【题目描述】如果一个数从左边读和从右边读都是同一个数,就称为回文数。例如6886就是一个回文数,求出所有的既是回文数又是素数的三位数。【输入】(无)【输出】所有的既是回文数又是素数的三位数。一个数一行。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>#include<cmath>usin...原创 2018-03-06 16:36:09 · 11992 阅读 · 1 评论 -
求π的值(信息学奥赛一本通-T1156)
【题目描述】根据公式:arctanx(x)=x−x^3/3+x^5/5−x^7/7+...和π=6arctanx(1/√3).定义函数arctanx(x),求当最后一项小于10^(−6)时π的值。【输入】(无)【输出】π的值。保留到小数点后10位。【输入样例】(无)【输出样例】(无)【源程序】#include<iostream>#...原创 2018-03-08 15:03:33 · 15968 阅读 · 3 评论 -
哥德巴赫猜想(信息学奥赛一本通-T1157)
【题目描述】哥德巴赫猜想的命题之一是:大于6 的偶数等于两个素数之和。编程将6~100所有偶数表示成两个素数之和。【输入】(无)【输出】分行输出:例如:6=3+38=3+5...(每个数只拆开一次,请保证第一个加数最小)【输入样例】(无)【输出样例】(无)【源程序】#include<iostream...原创 2018-03-06 17:33:10 · 15177 阅读 · 0 评论 -
简单算术表达式求值(信息学奥赛一本通-T1397)
【题目描述】两位正整数的简单算术运算(只考虑整数运算),算术运算为:+,加法运算;-,减法运算;*,乘法运算;/,整除运算;%,取余运算。算术表达式的格式为(运算符前后可能有空格):运算数 运算符 运算数请输出相应的结果。【输入】一行算术表达式。【输出】整型算数运算的结果(结果值不一定为2位数,可能多于2位或少于2...原创 2018-03-07 21:53:43 · 10888 阅读 · 0 评论 -
短信计费(信息学奥赛一本通-T1398)
【题目描述】用手机发短信,一条短信资费为0.1元,但限定一条短信的内容在70个字以内(包括70个字)。如果你一次所发送的短信超过了70个字,则会按照每70个字一条短信的限制把它分割成多条短信发送。假设已经知道你当月所发送的短信的字数,试统计一下你当月短信的总资费。【输入】第一行是整数n,表示当月发送短信的总次数,接着n行每行一个整数,表示每次短信的字数。【输出】输出一行,当月...原创 2018-03-07 22:03:03 · 14352 阅读 · 1 评论 -
甲流病人初筛(信息学奥赛一本通-T1399)
【题目描述】目前正是甲流盛行时期,为了更好地进行分流治疗,医院在挂号时要求对病人的体温和咳嗽情况进行检查,对于体温超过37.5度(含等于37.5度)并且咳嗽的病人初步判定为甲流病人(初筛)。现需要统计某天前来挂号就诊的病人中有多少人被初筛为甲流病人。【输入】第一行是某天前来挂号就诊的病人数n。(n<200)其后有n行,每行是病人的信息,包括三个信息:姓名(字符串,不含空格,...原创 2018-03-08 19:40:25 · 15003 阅读 · 0 评论 -
统计单词数(信息学奥赛一本通-T1400)
【题目描述】一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同(参见样例1),如果给定单词仅是文章...原创 2018-03-08 19:45:01 · 16978 阅读 · 11 评论 -
机器翻译(信息学奥赛一本通-T1401)
【题目描述】小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。假设...原创 2018-03-08 20:33:54 · 9862 阅读 · 6 评论 -
Vigenère密码(信息学奥赛一本通-T1402)
【题目描述】16世纪法国外交家Blaise de Vigenère设计了一种多表密码加密算法——Vigenère密码。Vigenère密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为南军所广泛使用。在密码学中,我们称需要加密的信息为明文,用M表示;称加密后的信息为密文,用C表示;而密钥是一种参数,是将明文转换为密文或将密文转换为明文的算法中输入的数据,记为k。 在Vig...原创 2018-03-08 21:00:44 · 11777 阅读 · 1 评论 -
素数对(信息学奥赛一本通-T1403)
【题目描述】两个相差为2的素数称为素数对,如5和7,17和19等,本题目要求找出所有两个数均不大于n的素数对。【输入】一个正整数n(1≤n≤10000)。【输出】所有小于等于n的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出empty。【输入样例】100【输出样例】3 55 711 1317 1929 3141 4359...原创 2018-03-06 22:21:51 · 12875 阅读 · 0 评论 -
我家的门牌号(信息学奥赛一本通-T1404)
【题目描述】我家住在一条短胡同里,这条胡同的门牌号从1开始顺序编号。若其余各家的门牌号之和减去我家门牌号的两倍,恰好等于n,求我家的门牌号及总共有多少家。数据保证有唯一解。【输入】一个正整数n。n<100000。【输出】一行,包含两个正整数,分别是我家的门牌号及总共有多少家,中间用单个空格隔开。【输入样例】100【输出样例】12 16【源程序】...原创 2018-03-08 22:15:19 · 16574 阅读 · 9 评论 -
质数的和与积(信息学奥赛一本通-T1405)
【题目描述】两个质数的和是S,它们的积最大是多少?【输入】一个不大于10000的正整数S,为两个质数的和。【输出】一个整数,为两个质数的最大乘积。数据保证有解。【输入样例】50【输出样例】589【源程序】#include<iostream>#include<cmath>using namespace std;bool ...原创 2018-03-08 21:40:47 · 8886 阅读 · 4 评论 -
单词替换(信息学奥赛一本通-T1406)
【题目描述】输入一个字符串,以回车结束(字符串长度≤200)。该字符串由若干个单词组成,单词之间用一个空格隔开,所有单词区分大小写。现需要将其中的某个单词替换成另一个单词,并输出替换之后的字符串。【输入】第1行是包含多个单词的字符串 s;第2行是待替换的单词a(长度 ≤ 100);第3行是a将被替换的单词b(长度 ≤ 100)。s,a,b最前面和最后面都没有空格。【输...原创 2018-03-08 21:33:57 · 11305 阅读 · 5 评论 -
亲和数(信息学奥赛一本通-T1154)
【题目描述】自然数a的因子是指能整除a的所有自然数,但不含a本身。例如12的因子为:1,2,3,4,6。若自然数a的因子之和为b,而且b的因子之和又等于a,则称a,b为一对“亲和数” 。求最小的一对亲和数(a<>b)。【输入】(无)【输出】1行,分别为a和b(a<b)。【输入样例】(无)【输出样例】(无)【源程序】#include...原创 2018-03-06 16:30:39 · 14349 阅读 · 3 评论