云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > c语言竞赛题目精选

c语言竞赛题目精选

  • 62 次阅读
  • 3 次下载
  • 2025/12/2 19:07:25

3n+1数链问题

Time limit: 1s Memory limit: 32768K

Total Submit : 471 Accepted Submit : 325

【问题描述】 在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况我们并不知道哪一类问题可以解决,那一类问题不可解决。现在我们就有这样一个问题,问题如下: 1. 输入一个正整数n; 2. 把n显示出来; 3. 如果n=1则结束;

4. 如果n是奇数则n变为 ,否则n变为n/2; 5. 转入第2步。

例如对于输入的正整数22,应该有如下数列被显示出来:

22 11 34 17 52 26 13 40 20 10 5 16 8 4 2 1

我们推测:对于任意一个正整数,经过以上算法最终会推到1。尽管这个算法很简单,但我们仍然无法确定我们的推断是否正确。不过好在我们有计算机,我们验证了对于小于1,000,000的正整数都满足以上推断。对于给定的正整数n,我们把显示出来的数的个数定义为n的链长,例如22的链长为16。

你的任务是编写一个程序,对于任意一对正整数i和j,给出i、j之间的最长链长,当然这个最长链长是由i、j之间的其中一个正整数产生的。我们这里的i、j之间即包括i也包括j。

【要求】

【数据输入】输入文件只有一行,即为正整数i和j,i和j之间以一个空格隔开。 0 < i ≤ j < 10,000。

【数据输出】文件只能有一行,即为i、j之间的最长链长。

【样例输入】 1 10

【样例输出】 20

数制转换

Time limit: 1s Memory limit: 32768K

Total Submit : 479 Accepted Submit : 190

【问题描述】

有一种数制的基数是3,权值可以取-1,0,1,并分别用符号-,0,1表示,如这种数制的101表示十进制数的10,即1*(3^2)+0*(3^1)+1*(3^0)=10,又如这种数制的-0 表示十进制数的-3,即-1*(3^1)+0*(3^0)=-3。编程要求把给定的有符号整数转

换为新数制的数,该数的前面不能有多余的0,如10的新数制表示是101,则不要输出成0101。

【要求】

【数据输入】文件有一行或多行,每行有一个整数N (-2,147,483,647≤N≤2,147,483,647),整数内不会有其他分隔符。

【数据输出】对输入文件的每一行输出一行,该行是输入行的整数的新数制表示,不能有多余空行,每行之前不能有前导空格。

【样例输入】 10 -3

【样例输出】 101 -0

矩阵取数游戏

Time limit: 1s Memory limit: 32768K Total Submit : 150 Accepted Submit : 27

【问题描述】

帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数。游戏规则如下: 1. 每次取数时须从每行各取走一个元素,共n个。m次后取完矩阵所有元素; 2. 每次取走的各个元素只能是该元素所在行的行首或行尾; 3. 每次取数都有一个得分值,为每行取数的得分之和,每行取数的得分 = 被取走的元素值*2i,其中i表示第i次取数(从1开始编号); 4. 游戏结束总得分为m次取数得分之和。

帅帅想请你帮忙写一个程序,对于任意矩阵,可以求出取数后的最大得分。

【要求】

【数据输入】输入有多个测试数据,每个包括n+1行: 第1行为两个用空格隔开的整数n和m。

第2~n+1行为n*m矩阵,其中每行有m个用单个空格隔开的非负整数。 1<=n, m<=80, 0<=aij<=1000

【数据输出】对每个数据,输出一行,为一个整数,即输入矩阵取数后的最大得分。相邻两个输出间用一个空行隔开。

【样例输入】 1 4 4 5 0 5

2 10

96 56 54 46 86 12 23 88 80 43 16 95 18 29 30 53 88 83 64 67

【样例输出】 122

316994 埃及分数

【问题描述】

在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。 如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。 对于一个分数a/b,表示方法有很多种,但是哪种最好呢?

首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。 如:

19/45=1/3 + 1/12 + 1/180 19/45=1/3 + 1/15 + 1/45 19/45=1/3 + 1/18 + 1/30, 19/45=1/4 + 1/6 + 1/180 19/45=1/5 + 1/6 + 1/18.

最好的是最后一种,因为1/18比1/180,1/45,1/30,1/180都大。 给出a,b(0〈a〈b〈1000),编程计算最好的表达方式。

【要求】

【数据输入】第一行:N 表示有N组测试数据,每组测试数据为一行包含a,b(0〈a〈b〈1000)。

【数据输出】每组测试数据若干个数,自小到大排列,依次是单位分数的分母。

【样例输入】 1 19 45

【样例输出】 5 6 18 H数

timelimit:1 seconds memlimit:32768 K Prev |Next

【问题描述】

让我们来做做David Hilbert的一个练习题.

定义H数为4的正整数倍加1,比如: 1, 5, 9, 13, 17, 21, 25... 都是H数.可以证明两

个H数相乘结果还是H数.类似于整数,我们也可以把H数分为1, H素数和H合数.一个H数为H素数,当且仅当,它除了1和自己之外,没有其他的H数整除它.除了1和H素数外,其他的H数都是H合数.比如9是H素数,因为除了1和9之外没有其他的H数整除9; 17和21也是H素数; 45是H合数,45=5×9,25也是H合数,因为 25=5×5.

你的任务是计算H半素数的个数. 一个H数是H半素数,当且仅当,它能分解成两个H素数的乘积.

这两个H素数可以是同一个数.比如25是H半素数,25=5×5。45也是H半素数, 45 = 5×9,而125不是H半

素数,125 = 5 × 5 × 5,它可以分解成3个H素数的乘积. 给你一个H数n,要求你输出有多少个不大于n的H半素数.

【要求】

【数据输入】输入包括多组数据,每组数据输出一行,包括一个整数n,(n ≤ 1,000,001 )

最后一行为一个0,表示输入结束.

【数据输出】每个输入数据输出一行,先输出n,然后输出小于等于n的H数中有几个是H半素数,这两个数用一个空格隔开

【样例输入】 21 85 789 0

【样例输出】 21 0 85 5 789 62 数列找数

Time Limit:1000MS Memory Limit:65536K Total Submit:635 Accepted:263

【问题描述】

在一个数组A(N)各下标变量中存储N个互不相等的数,键盘输入正整数M(M≤N),要求打印出数组中第M大的下标变量的值。 例如:数组A(10)的数据为:

A(1), A(2), A(3), A(4), A(5), A(6), A(7), A(8), A(9), A(10) 16, 57, 20, 19, 38, 41, 6, 13, 25, 32

M=3时的运行结果为: A(5)=38 (即第3大的数是A(5)=38)

【要求】 【数据输入】第一行为测试的数据的组数k,说明共有K组数据,每一组有两行。

搜索更多关于: c语言竞赛题目精选 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

3n+1数链问题 Time limit: 1s Memory limit: 32768K Total Submit : 471 Accepted Submit : 325 【问题描述】 在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况我们并不知道哪一类问题可以解决,那一类问题不可解决。现在我们就有这样一个问题,问题如下: 1. 输入一个正整数n; 2. 把n显示出来; 3. 如果n=1则结束; 4. 如果n是奇数则n变为 ,否则n变为n/2; 5. 转入第2步。 例如对于输入的正整数22,应该有如下数列被显示出来: 22 11 34 17 52 26 13

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com