首页 > 编程语言 >编程打卡:C语言趣味编程习题做

编程打卡:C语言趣味编程习题做

时间:2023-04-18 21:12:15浏览次数:48  
标签:10 15 17 16 -- 18 编程 打卡 习题

编程打卡:C语言趣味编程习题做

存钱问题

问题描述

给定不同期限档次整存整取的月利率,期限和本金,求出使利息最大的存款方案。

设计思路

遍历每种可能的存钱方案,求出利息最大的方案,然后输出。

流程图

graph A[开始] --> B[定义各种各样的变量] --> C[遍历所有存款方案,保存利率最大的情况] --> D[输出方案];

代码实现

class Program
{
static void Main(string[] args)
    {
        const double a = 2000;
        double max = 0,y1 = 0,y2 = 0,y3 = 0,y5 = 0,y8 = 0;
        for (int x8 = 0; x8 <= 2; x8++)
            for (int x5 = 0; x5 <= (20 - x8 * 8)/5; x5++)   
                for (int x3 = 0; x3 <= (20 - x8 * 8 - x5 * 5)/3; x3++)
                    for (int x2 = 0; x2 <= (20 - x8 * 8 - x5 * 5 - x3 * 3)/2; x2++)
                        for (int x1 = 0; x1 <= (20 - x8 * 8 - x5 * 5 - x3 * 3 - x2 * 2); x1++)  {
                            double interest = a * Math.Pow((1+0.0063 * 12),x1) * Math.Pow((1+0.0066 * 12),x2) * Math.Pow((1+0.0069 * 12),x3) * Math.Pow((1+0.0075 * 12),x5) * Math.Pow((1+0.0084 * 12),x8);
                            if (interest > max) {
                                y1 = x1;
                                y2 = x2;
                                y3 = x3;
                                y5 = x5;
                                y8 = x8;  
                            }
                        }
        Console.WriteLine($"8年期存 {y8} 次,5年期存 {y5} 次,3年期存 {y3} 次,2年期存 {y2} 次,一年期存 {y1} 次。");
    }
}

运行结果

8年期存 2 次,5年期存 0 次,3年期存 1 次,2年期存 0 次,一年期存 1 次。

分糖果

问题描述

给定初始每个人的糖块数,问多少次这样的操作之后每个人的糖块数相等。

设计思路

循环进行操作,满足所有人糖块数相等时结束循环,输出次数;

流程图

graph A[开始] --> B[用数组存储每个人的糖果数,初始化次数=0] --> C[进行分糖操作,次数++] --> D{每个人的糖果一样多?} --Yes--> E[输出次数]; D --No--> C;

代码实现

class Program
{
    static int[] candy = {10,2,8,22,16,4,10,6,14,20};
    static int[] tmp = new int[10];
    static bool check()    {
        int temp = candy[0];
        bool flag = true;
        foreach (int i in candy)    {
            Console.Write("{0} ",i);
            if (i != temp)  {
                flag = false;
            }
        }
        Console.WriteLine();
        return flag;
    }
    static void Main(string[] args)
    {
        int count = 0;
        while (!check())  {
            for (int i = 0; i < 10; i++)    {
                if (candy[i]%2 != 0) candy[i]++;
                candy[i]/=2;
                tmp[i] = candy[i];
            }
            for (int i = 0; i < 9; i++)     {
                candy[i+1] += tmp[i];
            }
            candy[0] += tmp[9];
            count++;
        }
        Console.WriteLine(count);
    }
}

运行结果

10 2 8 22 16 4 10 6 14 20 
15 6 5 15 19 10 7 8 10 17 
17 11 6 11 18 15 9 8 9 14 
16 15 9 9 15 17 13 9 9 12 
14 16 13 10 13 17 16 12 10 11
13 15 15 12 12 16 17 14 11 11
13 15 16 14 12 14 17 16 13 12
13 15 16 15 13 13 16 17 15 13
14 15 16 16 15 14 15 17 17 15
15 15 16 16 16 15 15 17 18 17
17 16 16 16 16 16 16 17 18 18
18 17 16 16 16 16 16 17 18 18
18 18 17 16 16 16 16 17 18 18 
18 18 18 17 16 16 16 17 18 18
18 18 18 18 17 16 16 17 18 18
18 18 18 18 18 17 16 17 18 18
18 18 18 18 18 18 17 17 18 18
18 18 18 18 18 18 18 18 18 18
17

标签:10,15,17,16,--,18,编程,打卡,习题
From: https://www.cnblogs.com/sugar-refinery/p/17331115.html

相关文章

  • 4.18 c++图形库easyx的基础编程
    头文件#include<graphcis.h>一基础绘图概念1.颜色用三原色表示RGB(红色部分,绿色部分,蓝色部分)每一部分的数值范围(0~255)。基本大写英文单词已对应例如BLUE蓝色2.窗口坐标的默认原点在左上角(0,0)x轴正方向向右,y轴正方向向下。二窗口函数initgraph(intwidth,intheigh......
  • 每日打卡
    最佳存款问题:问题描述:银行一年零存整取的利率为0.63%某人手里有一笔钱,存入银行,他想每年取1000元,问他最开始存了多少钱问题分析:用逆向思路,从第五年末入手,第五年末正好取走最后1000元,所以第五年存款数为1000/(1+12*0.0063)则前四年亦是如此代码#include<stdio.h>main(){    ......
  • 结对编程——随机生成四则运算程序
    在本次结对编程中,我和2152634王锴中同学一同进行参与了随机生成四则运算题目程序的编写,本次编写环境在clion上,使用c++风格的代码完成编写。在编写的过程中,我们一同探讨了用哪种语言进行编译,最终选定c++,原因在于对c++的掌握程度更深。在一起完成此项目的同时,我们收获了很多,尤其对方......
  • 打卡第三天
    一、问题描述: 从键盘上输入4个整数,输出其中的最小值二、设计思路:从键盘上输入四个整数,然后找到其中的最小值,并将其输出。具体实现的方法是,先定义四个整数变量a、b、c、d,然后使用cin语句从键盘上依次读入这四个整数。接下来,我们可以用if语句来比较这些数,并找到其中的最小值,将其赋......
  • 【Java技术指南】「Unirest编程专题」一起认识一下一个“灰常”优秀的Http工具,让Http
    Unirest-Java是一个轻量级的HTTP客户端库,它提供了简单易用的API,可以帮助Java开发人员快速地发送HTTP请求和处理响应。在本文中,我们将深入探讨Unirest-Java的技术细节和使用方法。Unirest-Java的优点简单易用:Unirest-Java提供了一组简单易用的API,可以帮助Java开发人员快速地发送HTTP......
  • 4.18打卡
    一、问题描述:一辆卡车违反交通规则,撞人后逃跑。现场有三人目击该事件,但都没有记住车号,只记下车号的一些特征。甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。请根据以上线索求出车号。二、设计思路:该......
  • C++第三章课后练习题
    编写可以求两个数最大公约数和最小公倍数的函数。1#include<iostream>2#include<cmath>3usingnamespacestd;4intfun1(intx,inty)5{6inttemp;7if(x<y)8{9temp=x;10x=y;11y=temp;12}13......
  • 4/18打卡 复数的输入输出和加减乘除重载
    classComplex{doublereal;doubleimag;public:friendistream&operator>>(istream&is,Complex&c);friendostream&operator<<(ostream&os,constComplex&a);Complex(){real=0;......
  • 建民の每日打卡7
    一、问题描述银行月利息0.63%,某人在第一年存了一笔钱,每年年底取出1000,五年后正好取完,求第一年存了多少钱?二、流程设计1.从最后一年向前递推,年末加上1000,除以年利率求出去年余款2.循环四次完成递推3.输出答案三、流程图设计 四、代码实现#include<iostream>usingnamesp......
  • 天天打卡一小时——5
    一.问题描述读入一系列整数,统计出正整数和负整数的个数,读到0结束二.设计思路1.输入一组整数2.包含正整数和负整数3.在每次读完一个数后需要进行判断4.非0接着读,为0则结束程序5.使用while语句三.程序流程图 四.代码实现#include<iostream>usingnamespacestd;int......