课程首页 › 第3部分 › 第45课

第45课 求和升级

第3部分 不辞辛苦 · 循环结构· 知识点:for循环、if语句

求和升级(for循环、if语句)

插图

传说在一座神秘的寺庙里隐藏着古老的智慧。然而,通往寺庙的道路被两座大山挡住了,大山上有两个变换的数字。打开两座大山之间道路的密码就是这两个数字之间的偶数和与奇数和的组合。

例如:1和10两个数字,它们之间偶数和为30,奇数和为25,那么密码就是3025。

现在运用你的智慧找出打开大山的密码吧。

求和升级

简单地从1加到100肯定难不倒你,试试这个吧,将偶数和奇数分开求和。

插图

运行程序:

请输入两个正整数: 100 1

在1和100之间的偶数和为: 2550

在1和100之间的奇数和为: 2500

密码是:25502500

(1)使用比较交换的方法,确保num1是小数,num2是大数,否则后面的循环起始值就不好确定了,万一从大数,条件是小于小数,这不直接就结束循环了吗。

插图
if(num1>num2){

int temp=num1; num1=num2; num2=temp;}

(2)for(int i=num1; i<=num2; i++){}:从小数num1开始循环,直到num2。

(3)将偶数累加到evenSum,将奇数累加到oddSum。

if(i % 2==0){

//如果是偶数,就加入偶数和

evenSum +=i;}else{

//如果是奇数,就加入奇数和

oddSum +=i;}

(4)最后将两个求和依次输出:cout<<"密码是:"<<evenSum<<oddSum。

巩固练习

(1)以下哪段程序运行后,num1是大数,num2是小数?()

A.

if(num1>num2){

int temp=num1; num1=num2; num2=temp;}

B.

num1=(num1

num2=(num1

C.

int temp=(num1

num1=temp; D.

if(num1<num2){

int temp=num1; num1=num2; num2=temp;}

(2)阅读下面的代码,填写程序运行后的输出结果。

插图

请输入两个正整数: 30 1

输出:_____________________________________________________________ __

(3)使用for循环编写程序,输入两个正整数,对两数之间的3的倍数进行累加求和,并输出和。

示例:

请输入两个正整数:1 10

在1和10之间的3的倍数之和是:18