红烧鸭子的价格是 a 元一盘,清汤鸭子的价格是 b 元一盘, 烧鹅的价格是 c 元一盘。
WAduck 有 d 元钱,请问它有多少种点餐的方式,使得总价格不超过 d 元钱?注意每种菜都可以点多盘,也都可以不点。
循环语句 嵌套 和 你
煮啵没活了喵,煮啵给大家咬个打火机喵 uwu
如果循环语句的运行逻辑理解的正确,循环语句嵌套的写法想必大家能够自然探索。这里补充两点细节 qwq
一个简单的 for 循环嵌套使用例:
for (int i=1;i<=3;i++)
{
for (int j=1;j<=4;j++)
{
cout<<i*j<<' ';
}
cout<<'\n';
}
输出:
1 2 3 4
2 4 6 8
3 6 9 12
for (int i=1;i<=3;i++)
{
for (int j=1;j<=4;j++)
{
if (i*j==6) continue;
cout<<i*j<<' ';
}
cout<<'\n';
}
输出:
1 2 3 4
2 4 8
3 9 12
我们可以看到第二行输出中的 6 被跳过了,但是之后的 8 没有被跳过。 这可以说明 continue 只跳过了一次内层的 for 循环(第一次跳过了 i=2,j=3 ,随后继续 i=2,j=4,而不是直接跳过 i=2 到 i=3。)
break 的作用域同理,大家可以多实践探索一下。请大家多多试着写不同的代码并且编译运行!对于编程学习来说,实践探索是特别重要的环节呀 pwp
for (int i=1;i<=3;i++)
{
for (int j=1;j<=5;j++)
{
if (j>i) break;
}
//cout<<j<<' '; 布豪!
}
定义在 for 循环内(循环内部或者 for 语句的第一个部分)的变量,在这一层循环的外面就不能使用了。 (while 循环内定义的变量寿命同理)
如果希望 for 循环的变量在循环结束之后还能够使用,请把这个变量定义在这层循环外面!
for (int i=1;i<=3;i++)
{
int j;
for (j=1;j<=5;j++)
{
if (j>i) break;
}
cout<<j<<'\n';
}
//cout<<j<<' '; 布豪!
输出:
2
3
4
在这段代码的内层循环中,for 语句的第一个部分给 j 赋了初值(而不是定义 j),而 j 是在这层循环开始前就定义的,所以也可以在这层循环结束后使用。但因为这个 j 在外层循环内定义,外层循环结束之后变量 j 还是不能使用 qwq 因为这个 for 循环对变量 j 的值进行了修改,所以也体现在了内层循环结束后的输出值上。 如果对这段代码不是很理解,依然建议多编码尝试!qwqpwpqwqpwp 欢迎讨论,主播神志不清的状态下写的,有问题欢迎指出咕嘎
输入
输入一行四个正整数 a,b,c,d (1 \leq a,b,c,d \leq 3000)。
输出
输出一行一个整数,表示答案。
样例
| 标准输入 复制文本 |
1 2 3 3 |
| 标准输出 复制文本 |
7 |
提示
0=0 (可以不点餐)
1=1
1+1=2
1+1+1=3
2=2
1+2=3
3=3
一共 7 种。
改编自 JZOI 原题。fun fact: 小时候这道题立方做法过了((