NOI OJ 1.5 16:买房子 C语言

描述

某程序员开始工作,年薪N万,他希望在中关村公馆买一套60平米的房子,现在价格是200万,假设房子价格以每年百分之K增长,并且该程序员未来年薪不变,且不吃不喝,不用交税,每年所得N万全都积攒起来,问第几年能够买下这套房子?(第一年年薪N万,房价200万)

输入

一行,包含两个正整数N(10 <= N <= 50), K(1 <= K <= 20),中间用单个空格隔开。

输出

如果在第20年或者之前就能买下这套房子,则输出一个整数M,表示最早需要在第M年能买下,否则输出Impossible。

先吐槽一下这道题,程序员都那么难了,你还在折磨他

思路:程序员的工资不变就每过一年(每循环一次(一年)加一次  即累加)

房价就是每年都乘以增长率即可。

然后每一年变化之后再进行比较

#include<stdio.h>
int main(){
    double n,k;
    scanf("%lf %lf",&n,&k);
    double K=(k/100)+1;  //这里是把增长率和本金加在一起了,方便后面的计算
    int year,x;
    double a=n,b=200.0;  //因为计算每一年之后计算出的房价肯定是带小数的就定义了double
    for(year=1;year<=20;year++){  因为year的范围是1-20.所以这里循环是这样定义的
        if (a>=b){   //因为我前面已经定义好了第一年的初始值,所以上来先比较,后面再计算下一年的工资的总数和变化后的房价
            break;   //break就是退出for循环,这里指当程序员的工资总额大于等于房价是退出循环
        }
        a=a+n;
        b=b*K;
        }
    if (year<=20)
        printf("%d",year);  //退出循环后如果符合year的范围,就输出此时的year值
    else
        printf("Impossible");
    return 0;
}

注:break指退出循环

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chd44

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值