课堂练习之求最划算的买法的价格

1.设计思想:

按照比例,由题目可知:2本   便宜5%,3本  便宜10%,4本   便宜20%,5本   便宜25%。

所以1~5本按照每册买一本来买最便宜;6~10本则要看情况计算,6本  按照5册加一本  也就是5*单价*(1-25%)+1*单价;7本则是  5*单价*(1-25%)+2*单价*(1-5%);8本 是4*单价*(1-20%)*2;9本 是4*单价*(1-20%)+5*单价*(1-25%);10本以上整数部分按套买,个数部分则和前面一样。

2,设计代码:

//最划算的买法的价格,王昭博。
#include <iostream>
using namespace std;

void main()
{
    int num,a,b;
    double sumprice;

    cout<<"请输入要买的书的本数:"<<endl;
    cin>>num;
    a=num/5;
    b=num%5;

    cout<<"最低价格为:";
    if(num<=5)
    {
		if(num==1)
		{
			sumprice=1;
		}
		else if(num==2)
		{
			sumprice=2*(1-0.05);
		}
		else if(num==3)
		{
			sumprice=3*(1-0.1);
		}
		else if(num==4)
		{
			sumprice=4*(1-0.2);
		}
		else if(num==5)
		{
			sumprice=5*(1-0.25) ;
		}
    }
    else
    {
        if(b==0)
        {
            sumprice=a*5*(1-0.25);
        }

        if(b==1)
        {
            sumprice=a*5*(1-0.25)+1;
        }

        if(b==2)
        {
            sumprice=a*5*(1-0.25)+2*(1-0.05);
        }

        if(b==3)
        {
            sumprice=(num-8)/5*5*(1-0.25)+4*2*(1-0.2);
        }

        if(b==4)
        {
            sumprice=a*5*(1-0.25)+4*(1-0.2);
        }
    }
    cout<<sumprice<<endl;
}

3.结果截图:

4.总结:

这次的课堂练习相对简单,关键是找到相似性,重复部分,这是代码可完成体现,如果连规律都找不到,那么这个代码就是不可能实现的。

时间: 2024-08-08 01:11:11

课堂练习之求最划算的买法的价格的相关文章

试题系列五(公鸡5元一只,母鸡3元一只,小鸡1元3只,求100元刚好买100只鸡的可能)

1 //5.公鸡5元一只,母鸡3元一只,小鸡1元3只,求100元刚好买100只鸡的可能 2 3 #include<stdio.h> 4 5 int main(int argc, char** argv) 6 { 7 int i = 0; 8 int j = 0; 9 10 for (i = 0; i <= 20; i++) 11 { 12 for (j = 0; j <= 30; j++) 13 { 14 if ( (0 == ((100-i-j)%3)) && (

百钱买百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,问100元买100只鸡,问有多少种买法,输出每种买法的结果!

/** * 百钱买百鸡:公鸡5元一只,母鸡3元一只,小鸡1元3只,问100元买100只鸡,问有多少种买法,输出每种买法的结果! * */ public class Test3 { public static void main(String[] args) { int c = 0; for (int a = 0; a < 100; a++) { for (int b = 0; b < 100; b++) { if ((7 * a + 4 * b) == 100) { c++; System.o

一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度

package ms100; /** * 一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度 *注: 这道题最近经常出现,包括MicroStrategy 等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题. 首先我们考虑最简单的情况: 如果只有1 级台阶,那显然只有一种跳法, 如果有2 级台阶,那就有两种跳的方法了:一种是分两次跳,每次跳1 级:另外一种就是一次跳2 级. 现在我们再来讨论一般情况: 我们把n 级台阶时的跳法看成是n

高通被罚 影响买手机的价格吗?

高通被罚 影响买手机的价格吗? 高通被发改委处罚后,是不是对国产手机厂商专利费收的就少了?那么手机价格会不会更便宜? 今天,高通中国反垄断案终于尘埃落定.高通公司被处罚款9.75亿美元,并对中国市场的智能手机专利授权做出多项调整. 高通对专利收费模式进行调整,于手机厂商而言,直接的影响是降低成本. 高通的专利授权一般分两部分,即厂商获得某项芯片解决方案的一次性授权费(有时还包括高额的一次性“入门费”),以及协议期内每销售一台手机额外缴纳的提成费率. 假设一部价格为2000元的手机,原先手机厂商首

终于明白单双大小稳盈买法的技巧了?

终于明白大小单双盈赚买法的技巧了? 我也是从一败涂地到目前的稳稳盈利,目前我有一套比较稳定的打法,如果目前还在亏损,可以找我,我愿意帮助这个圈子的朋友,毕竟当初我受过其他人的帮助,我乐意结交更多的朋友.人生总是充满诸多的机遇和选择,你选择我我必不让你失望,你选择不信我,我也祝愿你能赢得更多,事实莫过于雄辩,实力才是硬道理,每个人都在努力的通过各种渠道让自己的生活变得更加美好,无论是玩什么都一样,也许有时候我们会感觉到很累,也许我们有时候得不到更多的理解,但是我相信总有一些人会理解我们的,欢迎大家

课堂练习之求1到N之间的数里面含有1的个数

设计思想: 输入一个数,利用for循环,对每个数进行计算,统计该数是否含有1以及所含1的个数: 然后,对每个数的统计:通过while循环,从个位开始数,当i没有更高位时停止统计,(i/=10) ,最终输出个数. 代码: //求1到N之间的数里面含有1的个数 #include<iostream> using namespace std; int main() { int icount=0,i,N; cout<<"Please input the integer N,N=&q

4月28号周二课堂练习:求“1”的个数

一.题目要求 给定一个十进制的正整数,写下从1开始,到N的所有整数,然后数一下其中出现“1”的个数. 要求: 1.写一个函数 f(N) ,返回1 到 N 之间出现的 “1”的个数.例如 f(12)  = 5. 2.在32位整数范围内,满足条件的“f(N) =N”的最大的N是多少. 二.设计思路 (1)一位数时 f(0)=0;f(1)=1;f(2-9)=1; (2)二位数时 f(10)=1+(0+1)=2; f(11)=(1+1)+(1+1)=4; f(12)=(1+1)+(2+1)=5; f(1

java第二次课堂小作业求 五个数的平均数 最大数以及最小数

import java.util.*; public class dew{ public static void main(String[] args){ Scanner sc=new Scanner(System.in); int a; double avarge=0; int max,min; max=min=sc.nextInt(); avarge=max/5.0; for(int i=1;i<5;i++){ a=sc.nextInt(); if(a>max){ max=a; } if(

买书最低价格

(1)题目: n书店针对<哈利波特>系列书籍进行促销活动,一共5卷,用编号0.1.2.3.4表示,单独一卷售价8元, 具体折扣如下所示 本数 2,折扣5%:本数 3,折扣10%:本数4 ,折扣20%:本数5,折扣25%:根据购买的卷数以及本数,会对应不同折扣规则情况.单数一本书只会对应一个折扣规则,例如购买了两本卷1,一本卷2,则可以享受5%的折扣,另外一本卷一则不享受优惠. (2)解题思路: 在对这题目的解答时在所买数目比5本多时,通过对6本,7本,8本,9本书的计算,可以知道仅有8本书时分