课程A

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
输出格式
只一个整数,所求的和。
输入样例
5 12 8 5 6 4
输出样例
35
【分析】 和前面类似,把读入的 N 个数累加到一个变量中。
参考程序:
4 / 11
说明 sum 作为累加用的变量称为累加器。 累加器一开始要清零:sum=0;
练习 3:求正整数和。 题目描述
输入 n 个整数,求它们之中所有正整数的和。
输出格式
只一个整数。
输入样例
30802
输出样例
382
9 / 11
测试题
练习 7:垒三角形。 题目描述
用方块堆一个三角形。第一层 1 个三角形,第二层 2 个三角形,第三层 3 个三角形…。 如果有 N 个方块,最多可以堆多高?例如:N=13,可以堆 4 层。
* ** *** ****
输入格式
第一行 1 个整数 n,范围在[1,100000000]。
输入格式
输出格式 输入样例 输出样例
幸存人数。
第 2 节 累加器
例 2:求 1+2+3…+N 的和。 题目描述
输入 1 个 10000 以内的正整数 N 的整数,求 1+2+3…+N 的和。
输入格式
一行 1 个正整数:N,范围在[1,10000]。
输出格式
一个正整数。
输入样例
5
输出样例
15
【分析】 可以使用求和公式计算。但由于 N 比较小可以枚举 1 到 N 的整数,把它们累加到一个变
输出格式
只一个整数。
输入样例
13
输出样例
4
练习 8:水仙花数。 题目描述
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指 一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。
思。(x%a==0 && x%b==0) 的意思就是:x 能被 a 整除 并且 x 能被 b 整除。 break 语句就是立即终止 for 循环。 思考 不能 for (int x=1; ; x++) 下面程序有什么改进?
2 / 11
练习 1:最大公约数的简单方法。 题目描述
输入 2 个 2000 以内的正整数 a 和 b,找到最大的这样正整数 X:X 可以整除被 a 和 b。
一筐西瓜,N 个人分,第一个人拿走全部的一半又 1 个,第二个人拿走剩下的一半又 1 个,第三个人拿走剩下的一半又 1 个,如此下去,第 N 个人也如此,则西瓜刚好分完,问 这筐西瓜有几个?
输入格式
第一行 1 个整数 n,范围在[1,15]。
输出格式
只一个整数,这筐西瓜的总数。
输入样例
2
输出样例
6
知识点:
430512
输出样例
430512 43051 4305 430 43 4
【分析】 利用 C++的整除运算,a/10 就相当于删除最后一位。删除完的判断是 a 是否为 0。
参考程序:
说明
6 / 11
利用 for 语句,可以简化编程语句。
【复习】for 语句的执行次序:
for ( 第 1 部分 ; 第 2 部分 ; 第 3 部分 ) 语句/复合语句;
输入格式
一行 2 个正整数:a 和 b,范围在[1,2000]。
输出格式
一个正整数。
输入样例
46
输出样例
2
练习 2:韩信点兵。 题目描述
韩信带 1500 名兵士打仗,战死一些,想知道幸存人数,命令:站 3 人一排,多出 2 人; 站 5 人一排,多出 4 人;站 7 人一排,多出 6 人。
问幸存人数最多是多少?
输出格式
只一个整数,它们的积。
5 / 11
输入样例
3 2 -8 5
输出样例
-80
第 3 节 整数的分解
例 4:数的变化。 题目描述
输入 1 个正整数 a,每次打印后删除个位数,直至数字删除完。
输入格式
一行 1 个正整数:a,范围在[1,100000000]。
输出格式
多行整数,一个比一个短。
输入样例
练习 5:求 8 的个数。 题目描述
输入 1 个整数 n,求它有几个数字是 8。
输入格式
第一行 1 个整数 n,范围在[1,100000000]。
输出格式
只一个整数。
输入样例
308482
输出样例
2
练习 6:删除数字 0。 题目描述
输入 1 个整数 n,删除它的所有数字 0。
输入格式
第一行 1 个整数 n,范围在[1,100000000]。
输入格式
第一行 1 个整数 n,范围在[1,30]。 第二行有 n 个[-100,100]范围的整数,整数间用一个空格分隔。
输出格式
只一个整数,正整数的和。
输入样例
5 12 -8 5 -6 4
输出样例
21
练习 4:求乘积。 题目描述
输入 n 个整数,求它们之中所有数的积。
输入格式
第一行 1 个整数 n,范围在[1,15]。 第二行有 n 个[-10,10]范围的整数,整数间用一个空格分隔。
课程编号 A 需要知识:
1) 整数运算 2) if/else 语句 3) for 语句
教学目标:
1) 会使用 break 语句 2) 累加器概念 3) 整数的分解
第 1 节 break 语句
例 1:最小公倍数的简单方法。 题目描述
输入 2 个 2000 以内的正整数 a 和 b,找到最小的这样正整数 X:X 可以被 a 和 b 整除。
输出格式
1 个整数。
输入样例
430
输出样例
34 【分析】
前面已经会了从后向前取各位数字,只要把这些数字重新组合成一个整数即可。 例如:
5 和 6 的组合为 5*10+6=56。 再来一个 3,组合为 56*10+3=563。 … 参考程序:
8 / 11
说明 如果从后每次取一个打印一个,如果数字后面有 0 就不正确。 这里数字拆分的逆操作:数字的组合。
输入格式
一行 2 个正整数:a 和 b,范围在[1,2000]。
输出格式
一个正整数。
输入样例
46
输出样例
12 【分析】
由于 a 和 b 比较小,X 在[1, 4000000]范围内,可以简单使用穷举法。 参考程序:
1 / 11
说明 for 语句的中间是空的,表示没有停止条件。 if 语句中,有 2 个条件要同时成立,要用关系运算符”&&”,表示“并且”或“与”的意
图示:A = 5 4534 Nhomakorabea312A%10
21
A /= 10
A = 5432
A /= 10

A%10
2
7 / 11
参考程序:
说明 本题结合了求和与求余、删除的编程。
例 6:数的颠倒。 题目描述
输入 1 个正整数 a,把数反过来看是多少?
输入格式
一行 1 个正整数:a,范围在[1,100000000]。
break %和/ 最大公约数 gcd 累加器(累乘器)
&& for 语句的流程图 最小公倍数 lcm 整数的分解拆分和合并
2016.3 jiangtao
11 / 11
求所有 3 位数字的水仙花数。
输入格式 输出格式
多行,每行一个正整数。
输入样例 输出样例
153 …
练习 9:回文数判断。 题目描述
输入 1 个整数 n,判断它是否为回文数,即从右向左读和从左向右读是一样的数。
输入格式
第一行 1 个整数 n,范围在[1,100000000]。
输出格式
只一个整数。是回文数输出 1,不是回文数输出 0。
量中。 参考程序:
3 / 11
说明 sum 作为累加用的变量称为累加器。 累加器一开始要清零:sum=0;
例 3:求 N 个输入数字的和。 题目描述
输入 n 个整数,求它们的和。
输入格式
第一行 1 个整数 n,范围在[1,30]。 第二行有 n 个不超过 1000 的正整数,整数间用一个空格分隔。
输入样例
10 / 11
1331
输出样例
1
练习 10:分西瓜。 题目描述
这是个著名的数学问题,原题是:一筐西瓜,三个人分,第一个人拿走全部的一半又半 个,第二个人拿走剩下的一半又半个,第三个人拿走剩下的一半又半个。刚好分完,问这筐 西瓜有几个?
我认为博学多才的你一定知道这个问题的计算方法。我是计算机老师,当然想让你用计 算机解决更在数据范围的问题。现在的问题是:
第 3 部分
第 1 部分
假 第 2 部分
真 语句
结束循环
例 5:数的数字和。 题目描述
输入 1 个正整数 a,求各位数字的和。
输入格式
一行 1 个正整数:a,范围在[1,100000000]。
输出格式
1 个整数。
输入样例
4305
输出样例
12
【分析】 利用 C++的求余数运算,a%10 就相当于求最后一位。一边求和一边删除即可。
相关文档
最新文档