C++复习(七)——寻找数字&计算利率

 

题目十:寻找一个四位数,该数前两位、后两位相同,中间两位不同,并且这个数还是某一整数的平方

题目十一:银行月息为0.63%,某人存入一笔钱,每年取出1000元,五年后刚好取完,求最初存多少钱

题目十二:求最大存钱利息
月利率:0.63%  期限:1年 
月利率:0.66%  期限:2年
月利率:0.69%  期限:3年
月利率:0.75%  期限:5年
月利率:0.84%  期限:8年
某人手中有2000元,选择一种存钱方案,存入银行20年后得到利息最多 ,超出存款时间的利息不计

/*
题目十: 寻找一个四位数,该数前两位、后两位相同,中间两位不同,并且这个数还是某一整数的平方

分析:这个数的大概范围可以确定,在此范围内求可开平方数
 
 
题目十一: 银行月息为0.63%,某人存入一笔钱,每年取出1000元,五年后刚好取完,求最初存多少钱

分析:小学数学题 

题目十二:求最大存钱利息
月利率:0.63%  期限:1年 
月利率:0.66%  期限:2年
月利率:0.69%  期限:3年
月利率:0.75%  期限:5年
月利率:0.84%  期限:8年
某人手中有2000元,选择一种存钱方案,存入银行20年后得到利息最多 ,超出存款时间的利息不计 

分析:此题 本质是求20可以分为8,5,3,2,1,共多少种组合,
	每种组合在求出最大利息 ,可以先穷举法求出所有可能的结果
	在进行利息的计算  
	穷举也是有规律的,先找8年最少0次,最多两次,依次类推,嵌套循环,可以得出全部穷举方式 
*/
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;

int main(){
	//题目十 
	/*
	int i,j,number;
	double a;
	for(i = 0;i<=9;i++){
		for(j = 1;j<=9;j++){
			if(i!=j){
				a = sqrt(1100*j+11*i);
				if(a == (int)a)cout<<1100*j+11*i<<endl;
			}
		}
	}
	*/
	
	
	//题目十一
	/*
	double money = 0.0;
	int i;
	for(i=0;i<5;i++){
		money = (money+1000)/(1+12*0.0063);
	}
	cout<<money<<endl;
	*/
	
	
	//题目十二 
	int i_1,i_2,i_3,i_5,i_8;
	double all,max = 0.0;
	int n1,n2,n3,n5,n8;
	int count = 0;
	for(i_8 = 0;i_8 <= 2;i_8++){
		for(i_5 = 0;i_5 <= (20-8*i_8)/5;i_5++){
			for(i_3 = 0;i_3 <= (20-8*i_8-5*i_5)/3;i_3++){
				for(i_2 = 0;i_2 <= (20-8*i_8-5*i_5-3*i_3);i_2++){
					i_1 = 20-8*i_8-5*i_5-3*i_3-2*i_2;
					if (i_1 < 0)break;
					cout<< setw(8)<<"i_1 = "<<i_1<<"  " 
						<< setw(8)<<"i_2 = "<<i_2<<"  "
						<< setw(8)<<"i_3 = "<<i_3<<"  "
						<< setw(8)<<"i_5 = "<<i_5<<"  "
						<< setw(8)<<"i_8 = "<<i_8<<endl;
						//默认右对齐,左对齐<<left<<setw(6) 
					count++;
					all = 2000.0*pow((double)(1+0.0063*12),(double)i_1)*
						pow((double)(1+2*0.0066*12),(double)i_2)*
						pow((double)(1+3*0.0069*12),(double)i_3)*
						pow((double)(1+5*0.0075*12),(double)i_5)*
						pow((double)(1+8*0.0084*12),(double)i_8);
					if(all > max){
						max = all;n1=i_1;n2=i_2;n3=i_3;n5=i_5;n8=i_8;
					}
				}
			}
		}
	} 
	cout<<max<<endl;
	cout<<"共 "<<count<<" 种"<<endl; 
	return 0; 
}

       这其中有不合适或者不正确的地方欢迎指正,我的QQ号码:2867221444(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值