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

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

时间:2023-04-12 21:47:22浏览次数:39  
标签:gt int sum 编程 lt 打卡 hen cock 习题

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

百钱百鸡问题

问题描述

一只 Cock 卖 5 钱,Hen 卖 3 钱,chicken 卖 0.33333333 钱,真正工作的时候不要用浮点数存钱啊笨蛋!然后100钱买了100只鸡,问各买了多少只。

设计思路

解不定方程,穷举。

两层循环遍历各种鸡的个数,第三种鸡可以直接相减得出结果,然后判断总价是否为100即可

程序流程图

开始开始int cock, hen, chickenint cock, hen, chick...cock = 0cock = 0cock < 20cock < 20hen = 0hen = 0hen < 33hen < 33chicken = 100 - cock - henchicken = 100 - cock - hencock * 5 + hen * 3 + (float)chicken/3 == 100 ?cock * 5 + hen * 3 + (float)ch...输出数值输出数值YesYes结束结束hen++hen++NoNocock++cock++Text is not SVG - cannot display

代码

#include <iostream>
using namespace std;
int main()
{
    for (int i = 0; i &lt; 20; i++)    {
        for (int j = 0; j &lt; 33; j++)    {
            int k = 100 - i - j;
            if (i * 5 + j * 3 + (float)k/3 == 100)
                cout &lt;&lt; "cock = " &lt;&lt; i &lt;&lt; ", hen = " &lt;&lt; j &lt;&lt; ", chicken = " &lt;&lt; k &lt;&lt; endl;
        }
    }
}

执行结果

cock = 0, hen = 25, chicken = 75
cock = 4, hen = 18, chicken = 78
cock = 8, hen = 11, chicken = 81
cock = 12, hen = 4, chicken = 84

打渔还是晒网?

问题描述

1990年1月1日开始三天打渔两天晒网,询问之后的一个日期是在做什么。

设计思路

计算从1990年1月1日到询问的日期移动过了多少天,然后对5求模。结果0,1,2则为打渔,3,4则为晒网。

逐层计算年,月,日的差即可。

程序流程图

开始开始输入年月日输入年月日计算距今的天数计算距今的天数daySum <= 2daySum <= 2cout << 打渔cout << 打渔晒网晒网NoNoYesYesText is not SVG - cannot display

伪代码

cin &gt;&gt; yy &gt;&gt; mm &gt;&gt; dd
daySum(yy,mm,dd)
if daySum % 5 &lt;= 2
	cout &lt;&lt; "打渔"
else 
	cout &lt;&lt; "晒网"

代码

#include <iostream>
using namespace std;
int perMonth[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int getSum(int yy,int mm,int dd)
{
    int sum;
    for (int i = 1990; i &lt; yy; i++) {
        if (__isleap(i))
            sum += 366;
        else
            sum += 365;
    }
    for (int i = 1; i &lt; mm; i++)    {
        sum += perMonth[i];
        if (i == 2 &amp;&amp; __isleap(yy))
            sum ++;
    }
    sum += dd - 1;
    return sum;
}
int main ()
{
    int yy,mm,dd;
    cin &gt;&gt; yy &gt;&gt; mm &gt;&gt; dd;
    int sum = getSum(yy,mm,dd);
    if (sum % 5 &lt;= 2)
        cout &lt;&lt; "打渔" &lt;&lt; endl;
    else
        cout &lt;&lt; "晒网" &lt;&lt; endl;
}

标签:gt,int,sum,编程,lt,打卡,hen,cock,习题
From: https://www.cnblogs.com/sugar-refinery/p/17311374.html

相关文章

  • Java并发编程的艺术
    回复并发编程的艺术即可获取《Java并发编程的艺术》正是为了解决这个问题而写的。书中采用循序渐进的讲解方式,从并发编程的底层实现机制入手,逐步介绍了在设计Java并发程序时各种重要的技术、设计模式与应用,同时辅以丰富的示例代码,使得开发人员能够更快地领悟Java并发编程的要领,围绕......
  • 打卡第一日
    例7-1:#include<iostream>#include<cmath>usingnamespacestd;classpoint{public:   voidinitpoint(floatx=0,floaty=0){this->x=x;this->y=y;}   voidmove(floatoffx,floatoffy){x+=offx;y+=offy;}   floatgetx......
  • Vue.js 编程式路由导航
    视频>router-link最后会转成标签,有时候页面不是a标签就不能用router-link来写9.编程式路由导航作用:不借助<router-link>实现路由跳转,让路由跳转更加灵活具体编码://$router的两个APIthis.$router.push({ name:'xiangqing', params:{ id:xxx, title:xxx ......
  • 结对编程---四则运算
    目录一、实验目的二、实验内容三、实验代码四、实验结果五、实验心得一、实验目的通过两位同学组队用结对编码(两位位同学轮流coding,另一个同学在旁边审核代码)的方式完成本次实验。本次实验需要设计一个四则运算练习题的随机出题程序,可以通过C/C++/Java/Python等语言进......
  • python习题-筛法求素数
    【题目描述】用户输入整数n和m(1<n<m<1000),应用筛法求[n,m]范围内的所有素数。【基本思想】用筛法求素数的基本思想是:把从2到N的一组正整数从小到大按顺序排列。从中依次删除2的倍数、3的倍数、5的倍数,直到根号N的倍数为止,剩余的即为2~N之间的所有素数。【源代码程序】defsie......
  • 每日打卡一小时
    //#include<iostream>//#include<cmath>//usingnamespacestd;//classfenshu//{//private:// intx,y;//public:// fenshu(intx=1,inty=1)// {// this->x=x,this->y=y;// if(x==0&&y!=0)// {// cout<<"0&quo......
  • python习题-验证6174猜想
    【题目描述】1955年,卡普耶卡(D.R.Kaprekar)对4位数字进行了研究,发现一个规律:对任意各位数字不相同的4位数,使用各位数字能组成的最大数减去能组成的最小数,对得到的差重复这个操作,最终会得到6174这个数字,并且这个操作最多不会超过7次。请编写程序验证这个猜想。【源代码程序】de......
  • python习题-杨辉三角
    【题目描述】输出n(0<n)行杨辉三角形,n由用户输入。【源代码程序】n=int(input("请输入要打印的杨辉三角的行数:"))#初始化杨辉三角的第一行triangle=[[1]]#循环生成杨辉三角foriinrange(1,n):#初始化当前行的第一个元素为1row=[1]#循环生成当......
  • 打卡第一天
    百钱百鸡问题:#include<iostream>usingnamespacestd;intmain(){ intx,y,z; for(intx=0;x<21;x++){ for(inty=0;y<34;y++){ for(intz=0;z<101;z++){ if(x*5+y*3+z/3.0==100&&x+y+z==100) printf("%d%d%d\n",x,y,z); } } } ......
  • C++第二章课后习题2-29,2-30
    2-29在程序中定义一个整型变量,倔以1~100的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、do…while语句实现循环。#include<iostream>usingnamespacestd;intmain(){inta=56;cout<<"请输入您要猜的数(0......