买房子问题(break,continue,return的区别)

2023-05-16

问题描述:

  • 蒜头君从现在开始工作,年薪 NN 万。他希望在蒜厂附近买一套 6060 平米的房子,现在价格是 200200 万。假设房子价格以每年百分之 KK 增长,并且蒜头君未来年薪不变,且不吃不喝,不用交税,每年所得 NN 万全都积攒起来,问第几年能够买下这套房子?(第一年年薪 NN 万,房价 200200 万)
  • 输入格式
  • 一行,包含两个正整数 N(10 \le N \le 50)N(10≤N≤50),K(1 \le K \le 20)K(1≤K≤20),中间用单个空格隔开。
  • 输出格式
  • 如果在第 2020 年或者之前就能买下这套房子,则输出一个整数 MM,表示最早需要在第 MM 年能买下;否则输出"Impossible"
  • 输出时每行末尾的多余空格,不影响答案正确性
  • 样例输入
  • 50 10

  • 样例输出
    8

代码:

#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <string>
using namespace std;
int main() {
	int n;  //年薪
	int k;  //年利率
	cin >> n >> k;
	double sum = 0;//年薪之和
	int m = 0;  //m年
	double price = 200;//房价
	for (int m = 1; m <= 20; m++) {
		sum = sum + n;
		if (sum >= price) {
			cout << m;
			return 0;     //返回值在里面,在外面会出错 多输出一个impossible
		}
		price = price * (1 + k / 100.0);
	}
   cout << "Impossible";
	//return 0;
}

注 :return 0,break,continue的作用

简要:break是跳出当前整个循环语句,而continue是跳过当前循环的某一个条件语句的动作,return则是跳出当前函数而不往下继续执行

详细:

break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。

如下代码

1

2

3

4

5

6

7

8

9

10

public class Test {

    public static void main(String[] args) {

        for(int i=0; i<10; i++){

            if(i==5){

                break;

            }

            System.out.print(i+" ");

        }

    }

}

可以看到程序输出了01234到5的时候跳出了循环

 

 

continue:循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。

把break改为continue

1

2

3

4

5

6

7

8

9

10

public class Test {

    public static void main(String[] args) {

        for(int i=0; i<10; i++){

            if(i==5){

                continue;

            }

            System.out.print(i+" ");

        }

    }

}

 

可以看到只有5没有输出,也即当i=5时没有执行打印操作,直接到下一次循环

 

而return是表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return后函数就结束了,后面的语句不再执行

1

2

3

4

5

6

7

8

9

10

11

12

13

14

public class Test {

    public static void fun(){

        for(int i=0; i<10; i++){

            if(i==5){

                return;

            }

            System.out.print(i+" ");

        }

        System.out.println("hello");

    }

    public static void main(String[] args) {

        fun();

    }

}

 

可以看到后面的hello并没有打印出来

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

买房子问题(break,continue,return的区别) 的相关文章

  • Rust 比赛的早期突破

    我想切换多种可能的情况x有一种情况 这里x 0 我想检查一些附加代码的结果以确定下一步要做什么 一种可能性是提前结束比赛 I d use break在 C 中执行此提前返回操作 但这在 Rust 中是不允许的 return从父函数返回 在本
  • 是否可以使用“yield”来生成“Iterator”而不是 Scala 中的列表?

    是否可以使用yield作为迭代器而不评估每个值 当很容易实现复杂的列表生成时 这是一个常见的任务 然后你需要将其转换为Iterator 因为你不需要一些结果 当然 实际上 非严格性有三种选择 我在下面列出 对于示例 假设 val list
  • main 的 ret 指令去哪里了

    我在 Programming from ground up 一书中了解了汇编 x86 如何在全球范围内工作 在本书中 每个程序都以退出中断调用结束 然而 在C编译的程序中 我发现程序以ret结尾 这假设有一个地址要弹出 这将导致程序结束 所
  • PHP 有没有办法在 foreach 中重新启动循环,或更改 switch 中的测试值?

    如果我正在循环一个数组 并且在其中一个循环的中间我发现一些小问题 改变 一些东西 并且需要重试 有没有办法跳回到循环顶部而不从数组中获取下一个值 我怀疑这是否存在 但它会是一些关键字 例如continue or break 事实上 它很像c
  • Python 中的循环命名

    我最近读过这个问题 https stackoverflow com questions 886955 breaking out of nested loops in java 886979 886979其中有一个关于 Java 中标记循环的
  • 如果第一个“return”之后有一个“else”,那么性能是否重要?

    我现在看到了两种不同的方法来创建布尔返回方法 bool Case1 if A return true else return false bool Case2 if A return true return false 哪一个更快 不写还有
  • 使用 forEach() 返回数组值[重复]

    这个问题在这里已经有答案了 我希望返回存储在另一个对象中的数组的名称值 exports send function req res req body items forEach function item console log item
  • 函数不接受 1 个参数 C++

    我的代码有问题 因为我无法弄清楚为什么会收到错误 这是代码 using namespace std void presentValue bool stringChar bool stringVal double futureValConv
  • Java && ||在 RETURN 语句中?

    我正在查看一些 Java 算法示例 并且在递归方法中遇到了以下代码片段 boolean subTree TreeNode t1 TreeNode t2 if t1 null return false if t1 value t2 value
  • 新的 C++ 返回语法是否受到限制?

    我开始了一个新的私人项目并决定使用更多C 11 https en wikipedia org wiki C 2B 2B11 14 https en wikipedia org wiki C 2B 2B14这次 所以我也开始使用新的返回语法
  • 使用命令中断循环

    在我的 Python Discord Bot 中 我想创建一个命令 这会导致循环运行 当我输入第二个命令时 循环应该停止 那么粗略地说 client event async def on message message if message
  • F# 从 while 循环中中断

    有什么方法可以做到这一点C C 例如 C 风格 for int i 0 i lt 100 i if i 66 break 最简洁的答案是不 您通常会使用一些高阶函数来表达相同的功能 有许多函数可以让您执行此操作 对应于不同的模式 因此 如果
  • 从 UIViewController 返回 NSString

    我想返回一个NSString 从一个名为InputUIViewController的UIViewController 到之前的一个名为CallerUIViewController的UIViewController 它启动了InputUIVi
  • 在 java 中返回多个原始对象。不推荐?

    我刚刚开始学习 Java 的 OOP 编程 我已经用 C 编写过一些程序 而我在 Java 中最怀念的事情之一就是可以返回多个值 确实 C 函数仅严格返回一个变量 但我们可以使用按引用参数返回更多变量 相反 在Java中我们不能做这样的事情
  • lambda 始终返回“1”

    有这样的代码 include
  • PowerShell函数不会返回对象

    我有一个简单的函数来创建一个通用列表 function test genericType Type System Collections Generic List 1 type typedParameters System String c
  • Clojure:让作用域和函数返回值

    我在弄清楚如何使用 let 形式时遇到了一些麻烦 在下面的示例中 我想在本地绑定值 cols 以便稍后在函数中处理它 然而 我注意到 如果我使用 let 函数 sel opt tmp 将返回 nil 值而不是列表 defn sel opt
  • C# 要么返回 false 要么什么也不做

    我想知道是否有办法不必重复相同的事情如果施工而是调用一个状态检查 成功后无法返回true 有人知道这个问题更好的标题吗 bool Enable if GetStatus ref status Trace WriteLine Error re
  • 具有多个退出点的代码段的循环复杂度

    我有这个验证密码的方法 Checks if the given password is valid param password The password to validate return code true if the passwo
  • Scala 匿名函数中的 return 语句

    为什么显式 return 语句 使用return关键字 在匿名函数中从封闭的命名函数返回 而不仅仅是从匿名函数本身返回 例如 以下程序会导致类型错误 def foo String x Integer gt return x foo 我知道建

随机推荐

  • (转)Julia PkgServer 镜像服务

    https mp weixin qq com s DyegFcNEjieJspc 3B5G6w Julia PkgServer 镜像服务 原创 Johnny Chen JuliaCN 昨天 长久以来 xff0c 受国内网络环境影响 xff0
  • python : pandas库的后继者polars库

    polars库是python的又一dataframe库 xff0c 显然 xff0c 在pandas库的光芒下 xff0c 要上位是不容易的 xff0c 必须有过硬的功夫 一 用法基本一致 从长相上看 xff0c 两者有孪生相 xff0c
  • 证券类私募主要需求及核心服务商

  • Python:同花顺全数据接口

    前往 xff1a http quantapi 10jqka com cn page 61 home 如果是windows 根据不同用户 xff0c 可以选择不同的下载 1 iFinDPy 模块 下载完成后 xff0c 会出现一个DataIn
  • 使用Python中PIL图形库进行截屏

    目的 xff1a 通过使用Python的一个图形库PIL xff08 Python Image Library xff09 对屏幕进行截图 步骤 xff1a 1 下载PIL xff08 路径 xff09 并安装 2 新建文件 截屏 py x
  • 详解Python中pyautogui库的最全使用方法

    详解Python中pyautogui库的最全使用方法 在使用Python做脚本的话 xff0c 有两个库可以使用 xff0c 一个为PyUserInput库 xff0c 另一个为pyautogui库 就本人而言 xff0c 我更喜欢使用py
  • python : pandas 中多重索引multiindex与多个标的dataframe

    多个标的dataframe 如何转成多重索引的dataframe 有点象 xff0c 有中证500股票的数据 xff0c 如何把这500只股票 xff0c 整成一个多重索引的dataframe span class token functi
  • 关于Rust中的自引用:差之毫厘?!

    先设计一个自引用类型 xff0c 然后能过std mem swap来观察其变化 xff1a 一 为什么自引用没有出现预期的问题 use std mem derive Debug struct SelfRef name String ptr
  • Rust std::mem::transmute实例讲解

    Rust std mem transmute实例讲解 时间 2022 04 08 本文章向大家介绍Rust std mem transmute实例讲解 xff0c 主要分析其语法 参数 返回值和注意事项 xff0c 并结合实例形式分析了其使
  • Julia : 如何一行实现99乘法表?

    我个人的方法如下 xff0c 还有什么更简洁的么 xff1f 一 V1 0 span class hljs built in map span y span class hljs subst gt span println reduce s
  • 整理了一份史上最全的DevOps 工具链

    2018 02 07 朱少民 软件质量报道 在列出DevOps 工具链之前 xff0c 介绍一下什么是DevOps xff0c 虽然DevOps这个概念现在还没有标准的定义 xff0c 但我们可以追溯一下其过去九年的历史发展过程 xff08
  • https://zhuanlan.zhihu.com/p/36070173

    https zhuanlan zhihu com p 36070173
  • 几款SSH客户端

    SecureCRT Xshell Putty等都仅仅是客户端软件 xff0c 一般用于Windows客户端计算机 xff0c 因此 xff0c 无论选择哪款客户端SSH工具都是可以的 1 SecureCRT 8 1版本 SecureCRT是
  • Rust: 如何与DLL文件进行交互?

    Rust除了有FFI方式与外部或其它语言交互外 xff0c 还可以通过DLL的方式进行交互 更一步了解 xff0c 可以参考 xff1a https www insp top article how to implement dynamic
  • 八问数据中台:关于数据中台你想知道的都在这里!

    八问数据中台 xff1a 关于数据中台你想知道的都在这里 xff01 原创 xff1a 筱愚她爸 凯哥讲故事系列 1周前 数据中台最近特别火 xff0c 各个企业都在关注如何构建自己的数据中台 xff0c 利用数据中台打造数据驱动的经营能力
  • 小白学python系列————【Day45】面向对象魔法方法及元类详细

    今日内容概要 反射实战案例面向对象的魔法方法 双下方法 魔法方法实战演练元类简介创建类的两种方式元类的实际应用元类之双下new方法 反射实战案例 1 实战一 xff1a 加载配置文件纯大写的配置 span class token comme
  • Python将自己的Py文件(或包)发布至pip上

    Python将自己的Py文件 xff08 或包 xff09 发布至pip上 开始只打包一个py文件第一步在Pypi和Github上拥有自己的账号第二步 有一个python库 pgzero template pyREADME mdLICENS
  • Linux下搭建Git服务器

    目录 步骤一 安装Git xff1a 步骤二 服务器端创建git用户 xff08 管理Git服务 xff09 服务器端的Git配置公钥 生成rsa证书文件 步骤三 服务器端创建Git仓库 步骤四 客户端clone服务器端git仓库 1 在客
  • java -jar启动 报错: Error: Unable to access jarfile

    原因 xff1a 找不到jar包 xff0c 路径名称不对 xff1b 解决方案 xff1a 不要自己手动拼写输入jar包路径 xff0c 直接复制路径或tab键补齐
  • 买房子问题(break,continue,return的区别)

    问题描述 xff1a 蒜头君从现在开始工作 xff0c 年薪 NN 万 他希望在蒜厂附近买一套 6060 平米的房子 xff0c 现在价格是 200200 万 假设房子价格以每年百分之 KK 增长 xff0c 并且蒜头君未来年薪不变 xff