首页 > 编程语言 >c++打卡第十六天

c++打卡第十六天

时间:2023-04-26 16:57:33浏览次数:44  
标签:第十六 方案 int 最大值 c++ 次数 打卡 存钱 x5

一、问题描述。

 

 二、设计思路。

①、我们可以写出最终获得利息加本金的公式,即两千乘以利息加上其所存的年限,其中年限可以通过20除以不同的年限求得最大值。

②、获取各个年范围后,使用for循环穷举出每种情况所得的最终金额,同时打印出当所获得金额最大时,每个不同的存钱方案是用了几次。

③、获取最大值是通过与前边所得值不断比较,并且不断赋值,到最后打印出所获得最大值的情况。

三、流程图。

四、代码实现。

#include<iostream>
#include<cmath>
using namespace std;
int main() {
    double result=0;
    double max=0;
    int a,b,c,d,e;
    int x1,x2,x3,x5,x8;//存储利息最大值时各种存钱方案的次数
    //8年存钱方案最大期限次数为2
    //5年存钱方案最大期限次数为4
    //3年存钱方案最大期限次数为6
    //2年存钱方案最大期限次数为10
    //1年存钱方案最大期限次数为20,其中为了减少一些复杂度,我们for循环中使用20-x2-x3-x5-x8求x1;、
    for(a=0; a<3; a++) {
        for(b=0; b<=(20-a*8)/5; b++) {
            for(c=0; c<=(20-8*a-5*b)/3; c++) {
                for(d=0; d<=(20-8*a-5*b-c*3)/2; d++) {
                    e=20-a*8-b*5-c*3-d*2;
                    result=2000*pow(1+0.0063*12,e)*pow(1+0.0066*2*12,d)*pow(1+0.0069*3*12,c)*pow(1+0.0075*12*5,b)*pow(1+0.0084*12*8,a);
                    if(result>max) {
                        max=result;
                        x1=e;
                        x2=d;
                        x3=c;
                        x5=b;
                        x8=a;
                    }
                }
            }
        }
    }
    cout<<"存款一年的方案为:"<<x1<<"次,"<<"存款二年的方案为:"<<x2<<"次,"<<"存款三年的方案为:"<<x3<<"次,"<<"存款五年的方案为:"<<x5<<"次,"<<"存款八年的方案为:"<<x8<<"次。"<<endl;
    cout<<"总利息为:"<<max<<endl;
    return 0;
}

五、结果实现

 

标签:第十六,方案,int,最大值,c++,次数,打卡,存钱,x5
From: https://www.cnblogs.com/zzqq1314/p/17356582.html

相关文章

  • 打卡4(java)
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);inta=sc.nextInt(),b=sc.nextInt();intc=sc.nextInt(),d=sc.nextInt();intx=a*60+b,y=c*60+d;......
  • 编程打卡:来玩玩Ruby语言吧2.1!
    编程打卡:来玩玩Ruby语言吧2.1!我们前面实现了一个有趣的树类Tree,但它不具有简洁的用户接口,来设置一棵新树,为它写一个初始化方法,接受散列表和数组嵌套的结构。写好之后,你可以这样设置新树:{'grandpa'=>{'dad'=>{'child1'=>{},'child2'=>{}},'uncle'=>{'child3�......
  • 我的C++常用函数
    /*根据多个分隔符来分隔字符串.比如":,]"*/std::vector<std::string>SplitString(conststd::string&str,conststd::string&delimiters){std::vector<std::string>tokens;size_tprev=0,pos;while((pos=str.find_first_of(d......
  • 打卡第十二天
    输入一个8位二进制数,将其转换为十进制输出一、1.将二进制数每一位乘以该位的2的次方相加- 二、三、#include<iostream>usingnamespacestd;doublepower(doublex,intn){ doubleq=1.0; while(n--) q*=x; returnq;}intmain(){ intq=0; cout<<"输入数字:"; for(inti......
  • 2022 蓝桥杯国赛 C++ B 组
    A\(\text{379187662194355221}\)。\(\text{dp}\)。C++Code#include"bits/stdc++.h"usingnamespacestd;usingi64=longlong;intmain(){ios::sync_with_stdio(false);cin.tie(nullptr);vector<vector<i64>>f......
  • 4.26打卡
    #include<iostream>#include<iomanip>#include<cmath>usingnamespacestd;constdoubleTINY_VALUE=1e-10;doubletsin(doublex){doubleg=0;doublet=x;intn=1;do{g+=t;n++;t=-t*x*x/(2*......
  • c++,x11,linux查找窗口
    如题点击查看代码#include<X11/Xlib.h>#include<stdio.h>voidfindWindow(Display*display,Windowwindow,char**windowName,Window*result){Windowroot,parent,*children;unsignedintnChildren;if(XFetchName(display,window,windo......
  • C++ 类和对象1
    1.初步认识面向对象与面向过程C语言是面向过程的语言,关注的是解决问题的过程比如,首先对问题进行拆解,然后用函数的方式对每个部分逐个实现,最后通过函数之间的相互调用将问题解决C++是面向对象的,关注的是对象,如何从一个问题中抽离出不同的对象,然后靠对象之间的交互解决......
  • 02 | C++lambda容易忽略的点
    1.模板化的lambda如果我们的lambda接收容器(假定我们老老实实的传入容器),并且要提取出容器中的元素类型,应该怎么做呢?之前我们可能这样做autof=[](autovector){usingT=typenamedecltype(vector)::value_type;///......}首先说这样做并不明显我们要传入的......
  • C++学习 第十二天
    今日学习内容:继承 多态 虚函数和抽象函数 继承:优点:可以实现代码复用,节省代码量分类:单继承 多继承 单继承:语法:class 子类类名:继承访问修饰符 父类类名{成员};父类:子类: 继承:继承修饰符:publicprotectedprivate当继承修饰是 public时 访问权......