1 条题解

  • 0
    @ 2025-8-13 21:15:13

    首先fk表示房子每年增长率,k% ,数学上就代表100份占k份等于k/100,要注意除法可能有小数,所以我们要转换小数

    第一年工资是N,房子是200万,房子要过了一年才会涨价,所以我们先判断今年的工资可以买房吗,不够的话第二年房子受影响涨价了,所以房价要放在判断完第一年后再加

    因为房子每年都涨%k ,假如200w涨10% 就表示房子涨了20w ,房子价格220万,而下一年就是220万的价格再涨10% 所以,要让 房价 = 现有房价 + 现有房价*涨的比率

    注意房价有利率变化,可能是小数,我们要用小数double类型

    最后判断是否超过20年还没买,没买的话这辈子没希望了

    #include<bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int n,k;
    	cin>>n>>k;
    	double f=200;
    	double fk = k/100.0;
    	int q = 0; 
    	for(int i=1;i<=20;i++)
    	{
    		q = q + n;
    		if(q>=f)
    		{
    			cout<<i;
    			return 0;
    		}
    		f = f+f*fk;
    	}
    	cout<<"Impossible";
    	return 0;
    
    }
    
    • 1

    信息

    ID
    4933
    时间
    1000ms
    内存
    64MiB
    难度
    8
    标签
    递交数
    50
    已通过
    6
    上传者