题目十:寻找一个四位数,该数前两位、后两位相同,中间两位不同,并且这个数还是某一整数的平方
题目十一:银行月息为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(乔金明),谢谢,也可以相互交流下,备注信息随意,只要能看得出是开发者或者学习者即可。