当前位置:   article > 正文

C++之循环结构/动态规划(dp)讲义_c++ dp

c++ dp

本文的原文链接

一、上一讲复习习题

(每题 1 1 1 分,共 4 4 4 分)

1.下面代码的错误有哪些?

if(n%2==0){
   
	cout<<"Is a even.";
	else{
   
		cout<<"Is a odd."
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • n未定义,且没有初始值。
  • else语句写的位置错误,应在if语句的后面写。
  • 第四行cout<<"Is a odd."处没有分号。
  • else在C++中没有定义,压根不能用,而不是位置错。

2.这个判断闰年的核心代码,是对的还是错的?

//year表示当前年份
cin>>year;
if(n/4==0&&n%400!=0){
   
	cout<<"Is a leap.";
}
if(n%400==0){
   
	cout<<"Is a leap.";
}
else{
   
	cout<<"Is not a leap.";
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 正确。
  • 错误。有_______处错误。

3.下面是洛谷 P5716的核心代码,请说出下面代码的问题。

//year表示年份,month表示月份,isleap表示是否为闰年。
cin>>year>>month;
if(year%4==0||year%400==0){
   
	isleap=true;
} 
else{
   
	isleap=false;
}
if(month=1||month=3||month=5||month=7||month=8||month=10||month=12){
   
	cout<<"31"<<endl;
}
else if(month==4&&month==6&&month==9&&month==11){
   
	cout<<"30"<<endl;
}
else if(month==2){
   
	if(isleap){
   
		cout<<"29"<<endl;
	}
	else{
   
		cout<<"28"<<endl;
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 答:______________________________________________________________________________________________________。

4.读程序选输出。阅读程序,选择它的正确输出。(禁止运行程序)

#include<iostream>
using namespace std;
int main(){
   
	int b=4,a=1,c=4;
	int root=b*b-4*a*c;
	if(root>0){
   
		cout<<"2"<<endl;
	}
	else if(root==0){
   
		cout<<1<<endl;
	}
	else{
   
		cout<<0<<endl;
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • "1"
  • 没有输出
  • 0
  • 1
  • "2"

二、循环结构课堂讲义

引导、概念普及

概念1:程序设计结构基础三要素:顺序结构、分支结构、循环结构

概念2:程序设计基础掌握内容:顺序结构、分支结构、循环结构、一/多维数组、字符串、函数/函数递归的理解

一、for循环

我们要列举大于等于数字 1 1 1 ,小于数字 6 6 6 的数字,怎么办呢?相信同学们都已经想好怎么写了,核心代码如下:

cout<<1<<endl;
cout<<2<<endl;
cout<<3<<endl;
cout<<4<<endl;
cout<<5<<endl;
  • 1
  • 2
  • 3
  • 4
  • 5

如果我们要列举 99 99 99 个数, 999 999 999 个数, 9999 9999 9999 个数, 99999 99999 99999 个甚至更多的数,用这种方法岂不太低效了?

别急,我们可以用for循环解决。列举 1 1 1 99 99 99 的数的核心代码如下:

for(int i=1;i<100;i=i+1){
   
	cout<<i<<endl;
}
  • 1
  • 2
  • 3
  • 4

这里每个部分是什么呢?

for关键字到}结束的地方称为for循环。它是一种循环结构

for后面()内三个部分由;分隔,分别表示:进入循环前执行的语句(循环初始化)循环继续执行一次的条件判断(循环条件)每一次循环执行后会执行的语句(循环后执行语句)

任务1:分别输出 1 1 1 100 , 1000 , 10000 , 100000 , 1000000 100,1000,10000,100000,1000000 100,1000,10000,100000,1000000 的连续数字,想想怎么做?提示:我们可以用for循环解决问题。( 3 3 3 分)

答案:标程链接

任务2: 100 100 100 以内的正偶数。提示:每次i不一定+1,或用if解决问题?( 3 3 3 分)

答案:标程链接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/961484
推荐阅读
相关标签
  

闽ICP备14008679号