日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > C# >内容正文

C#

C# - 习题07_计算1分2分5分硬币各有多少枚

發(fā)布時(shí)間:2023/12/20 C# 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# - 习题07_计算1分2分5分硬币各有多少枚 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 時(shí)間:2017-09-08 整理:byzqy

題目:現(xiàn)在有1分、2分、5分硬幣共100個(gè),總金額為2.46元,請(qǐng)用程序計(jì)算出1分、2分、5分各有多少枚,有多少種算法?

這是最近面試遇到的一個(gè)題目,剛開(kāi)始沒(méi)有思路,一看這是一個(gè)三元一次方程組,假設(shè)個(gè)數(shù)分別為a、b、c的話,就會(huì)有三個(gè)未知數(shù)和兩個(gè)方程組,怎么解?數(shù)學(xué)真是白學(xué)了!

于是在網(wǎng)上搜到了這個(gè)題目,不過(guò)題目略有不同:

文件:Program1.cs

//問(wèn)題:1分2分5分硬幣,一共2.46元,求各種硬幣的個(gè)數(shù) //回答:你沒(méi)說(shuō)明是不是求需要的最少的硬幣的個(gè)數(shù),因?yàn)檫@樣有上千種組成,所以我就給你寫(xiě)個(gè)控制臺(tái)的,求需要最少的硬幣個(gè)數(shù)吧using System;namespace ConsoleApplication1 {class Program1{static void Main(string[] args){int money = 246; //總共246分int number5; //number5表示需要5分的硬幣個(gè)數(shù)int number2; //number2表示需要2分的硬幣個(gè)數(shù)int number1; //number1表示需要1分的硬幣個(gè)數(shù)number5 = money / 5;number2 = (money % 5) / 2;number1 = money % 5 % 2;Console.WriteLine("需要:" + "\n"+ "5分的硬幣:" + number5 + "個(gè)" + "\n"+ "2分的硬幣:" + number2 + "個(gè)" + "\n"+ "1分的硬幣:" + number1 + "個(gè)");Console.ReadLine();}} }

運(yùn)行結(jié)果:

按照這個(gè)哥們兒的思路,設(shè)置三個(gè)未知數(shù)這一點(diǎn)與我是相同的,他給我的啟發(fā)有下面幾點(diǎn):

  • 將246也設(shè)置為一個(gè)變量money在代碼中體現(xiàn)出來(lái),那我同樣可以將100也設(shè)置為一個(gè)變量,這樣的好處是方便解決硬幣個(gè)數(shù)變化為1000甚至10000的情況。
  • 他用money這一個(gè)變量,通過(guò)取余和除法,完全獨(dú)立的表示出了三個(gè)變量的值,啟示我在遍歷5分硬幣的個(gè)數(shù)時(shí),用5分硬幣的個(gè)數(shù)可以完全獨(dú)立的表示出1分和2分硬幣的個(gè)數(shù)。
  • 利用for循環(huán)遍歷5分硬幣的個(gè)數(shù)是另一個(gè)哥們給我的啟發(fā),既然只有2個(gè)方程3個(gè)未知數(shù)的三元一次方程,想想就知道答案可能不止一種,那給我的第一想法就是采用“試”的方法,先將一種硬幣可能出現(xiàn)的個(gè)數(shù)“代”進(jìn)去,幸運(yùn)的是發(fā)現(xiàn)兩個(gè)方程式可以通過(guò)加減,消除掉其中一個(gè)未知數(shù),就可以做到上面提到的,用其中一個(gè)硬幣的個(gè)數(shù)完全獨(dú)立的表示出另外兩枚硬幣的個(gè)數(shù)。 /*a + b + c = 100;a + 2b + 5c = 246;b = 246 - 100 - 4c;a = 3c - 246 + 2*100;*/

    ?

  • 文件:Program2.cs

    using System;namespace ConsoleApplication2 {class Program2{static void Main(string[] args){int money = 246; //總共246分int amount = 100;int number5; //number5表示需要5分的硬幣個(gè)數(shù)int number2; //number2表示需要2分的硬幣個(gè)數(shù)int number1; //number1表示需要1分的硬幣個(gè)數(shù)int count = 0;for (int i = 0; i < money/5; i++){number5 = i;number2 = money - amount - 4 * number5;number1 = 3 * number5 - money + 2 * amount;if (number2 >= 0 && number1 >= 0){Console.WriteLine("5分:{0}個(gè),2分:{1}個(gè),1分:{2}個(gè)", number5, number2, number1);count++;}}Console.WriteLine("共有{0}種算法……", count);Console.ReadLine();}} }

    計(jì)算結(jié)果:

    到此結(jié)束,如果上述過(guò)程中有任何的錯(cuò)誤或者誰(shuí)有更好的方法,希望看到的朋友不吝賜教,多多指點(diǎn)!

    ?

    轉(zhuǎn)載于:https://www.cnblogs.com/jswl/p/7492678.html

    總結(jié)

    以上是生活随笔為你收集整理的C# - 习题07_计算1分2分5分硬币各有多少枚的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。