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

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

生活随笔

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

C#

一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]

發(fā)布時(shí)間:2024/8/1 C# 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#] 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?

前幾天CSDN論壇的首頁(yè),看到一則帖子,題目是:“一道經(jīng)典的C++題,關(guān)于分錢(qián)的問(wèn)題,適合新手閱讀(黑客X檔案論壇題目) ”,鏈接如下:http://blog.csdn.net/gisfarmer/archive/2009/02/08/3869236.aspx

題如下:
把一張面值為一元的紙幣,換成一分,二分,五分的硬幣,共有多少種換法?編程輸出每一種不同的算法。

這道題很簡(jiǎn)單,是最簡(jiǎn)單的C++題,用C也可以做。

?

看了原貼http://bbs.hackerxfiles.net/thread-98055-15-1.html和http://blog.csdn.net/gisfarmer/archive/2009/02/08/3869236.aspx

里面有很多答案,說(shuō)實(shí)在的,有點(diǎn)看不下去了,因?yàn)榭偢惺軐?xiě)的代碼有點(diǎn)別扭,做的一些循環(huán)都像是寫(xiě)死了的。。

比如:

  • int?x=0,y=0,z=0,n=0; ??
  • ?????int?count=0; ??
  • ??
  • ?????for(z=1;z<20;z++) ??
  • ?????{ ??
  • ??????????for(y=1;y<=(100-z*5)/2;y++)???
  • 我不知道z<20為什么要這么寫(xiě),為什么是20呢?

    還有就是如果如果再加一個(gè)一毛,或者是五毛,求共有多少種換法,這又怎么寫(xiě)呢?

    又或者是分的不是一塊錢(qián),分的是五塊錢(qián),求共有多少種換法,又怎么寫(xiě)呢?

    。。。哎,我也是寫(xiě)程序的,很怕業(yè)務(wù)的改變,所以在想,能不能寫(xiě)一個(gè)通用點(diǎn)的方法,于是自己寫(xiě)了一個(gè)如下,還請(qǐng)路過(guò)的指教一下(本人是菜鳥(niǎo)).

    寫(xiě)了兩個(gè)方法,一個(gè)需要輸出明細(xì),一個(gè)不需要輸出明細(xì),大家可以試著玩一下。。

    ?

    c#:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleStudy
    {
    ??? class SumNumberDemo
    ??? {
    ??????? static void Main() {

    ??????????? Console.WriteLine("SumNumberDemo");
    ??????????? List<int> intList = new List<int>();
    ??????????? string reString =string.Empty;
    ??????????? int count = 0;
    ??????????? intList.Add(1);
    ??????????? intList.Add(2);
    ??????????? intList.Add(5);
    ??????????? //intList.Add(7);
    ??????????? //intList.Add(9);
    ??????????? //不需要輸出明細(xì)
    ??????????? SplitMoney(100, 0, intList, 0, ref count);
    ??????????? //輸出明細(xì)
    ??????????? //SplitMoney(10, 0, intList, 0, reString, ref count);
    ??????????? Console.WriteLine(string.Format("總共有{0}種分法",count));
    ??????? }

    ??????? /// <summary>
    ??????? /// 分錢(qián)方法
    ??????? /// </summary>
    ??????? /// <param name="pmMoney">被分的錢(qián)</param>
    ??????? /// <param name="pmMoneyNow">當(dāng)前分法的錢(qián)的和</param>
    ??????? /// <param name="pmMoneyList">分錢(qián)列表</param>
    ??????? /// <param name="pmMoneyIndex">當(dāng)前分錢(qián)索引</param>
    ??????? /// <param name="pmString">當(dāng)前分法明細(xì)</param>
    ??????? /// <param name="pmSplitCount">分錢(qián)方法總數(shù)統(tǒng)計(jì)</param>
    ??????? static void SplitMoney(int pmMoney, int pmMoneyNow, List<int> pmMoneyList, int pmMoneyIndex, string pmString, ref int pmSplitCount)
    ??????? {
    ??????????? int snCount=pmMoneyList.Count;

    ??????????? if (pmMoneyIndex < pmMoneyList.Count)
    ??????????? {
    ??????????????? for (int i = 0; i * pmMoneyList[pmMoneyIndex] <= pmMoney; i++)
    ??????????????? {
    ??????????????????? //當(dāng)前和統(tǒng)計(jì)
    ??????????????????? int snSumNow = i * pmMoneyList[pmMoneyIndex]+pmMoneyNow;

    ??????????????????? //--begin----這個(gè)字符串主要是為了輸出的,如果不要求輸出可以注釋掉----------------
    ??????????????????? string snString = string.Empty;
    ??????????????????? if (string.IsNullOrEmpty(pmString))
    ??????????????????? {
    ??????????????????????? snString = string.Format("{0}*{1}",i, pmMoneyList[pmMoneyIndex]);
    ??????????????????? }
    ??????????????????? else {
    ??????????????????????? snString = string.Format("{0}+{1}*{2}", pmString, i, pmMoneyList[pmMoneyIndex]);
    ??????????????????? }
    ??????????????????? //---end------------------

    ??????????????????? if (snSumNow == pmMoney)
    ??????????????????? {
    ??????????????????????? //------begin-------------
    ??????????????????????? for (int j = pmMoneyIndex+1; j < snCount;j++ )
    ??????????????????????? {
    ??????????????????????????? snString += string.Format("+0*{0}", pmMoneyList[j]);
    ??????????????????????? }
    ??????????????????????? //-------end-------------
    ??????????????????????? pmSplitCount++;

    ??????????????????????? Console.WriteLine(string.Format("---{0}={1}---",snString,pmMoney));
    ??????????????????? }
    ??????????????????? else
    ??????????????????? {
    ??????????????????????? SplitMoney(pmMoney, snSumNow, pmMoneyList, pmMoneyIndex + 1, snString, ref pmSplitCount);
    ??????????????????? }

    ??????????????? }
    ??????????? }

    ??????? }

    ??????? /// <summary>
    ??????? /// 分錢(qián)方法
    ??????? /// </summary>
    ??????? /// <param name="pmMoney">被分的錢(qián)</param>
    ??????? /// <param name="pmNoneyNow">當(dāng)前分法的錢(qián)的和</param>
    ??????? /// <param name="pmMoneyList">分錢(qián)列表</param>
    ??????? /// <param name="pmMoneyIndex">當(dāng)前分錢(qián)索引</param>
    ??????? /// <param name="pmSplitCount">分錢(qián)方法總數(shù)統(tǒng)計(jì)</param>
    ??????? static void SplitMoney(int pmMoney, int pmNoneyNow, List<int> pmMoneyList, int pmMoneyIndex, ref int pmSplitCount)
    ??????? {
    ??????????? int snCount = pmMoneyList.Count;
    ???????????
    ??????????? if (pmMoneyIndex < pmMoneyList.Count)
    ??????????? {
    ??????????????? for (int i = 0; i * pmMoneyList[pmMoneyIndex] <= pmMoney; i++)
    ??????????????? {
    ??????????????????? //當(dāng)前和統(tǒng)計(jì)
    ??????????????????? int snSumNow = i * pmMoneyList[pmMoneyIndex] + pmNoneyNow;
    ??????????????????? if (snSumNow == pmMoney)
    ??????????????????? {
    ??????????????????????? pmSplitCount++;
    ??????????????????? }
    ??????????????????? else
    ??????????????????? {
    ??????????????????????? SplitMoney(pmMoney, snSumNow, pmMoneyList, pmMoneyIndex + 1, ref pmSplitCount);
    ??????????????????? }
    ??????????????? }
    ??????????? }

    ??????? }
    ??? }
    }

    總結(jié)

    以上是生活随笔為你收集整理的一道经典的C++题,关于分钱的问题,适合新手阅读(黑客X档案论坛题目) [c#]的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

    主站蜘蛛池模板: 毛片美女 | 波多野结衣不卡视频 | 国产精品自拍第一页 | 黄色免费大片 | 久久国产成人精品国产成人亚洲 | 97高清国语自产拍 | 成人免费淫片aa视频免费 | 婷婷综合激情 | 一级片视频免费 | 国产成人区 | 在线黄av | 天天操天 | 久久久久久久久久久久久久久久久久久 | 国产精品福利在线 | 黄色观看网站 | 国产ts变态重口人妖hd | 69堂视频| 欧美精品aaa | 日韩综合在线观看 | 亚洲中文字幕无码不卡电影 | 东方伊甸园av在线 | 精品国产区 | 夜夜操国产 | 色哟哟日韩精品 | 美女大黄网站 | 嫩色av| 欧美乱妇狂野欧美在线视频 | 黄色特一级 | 婷婷色图 | 国产一区二区在线不卡 | 欧洲天堂网 | 精品一区中文字幕 | 日本裸体动漫 | 日韩在线视频网址 | 在线观看高h | 久久久国产网站 | 国产久草视频 | 人妖性生活视频 | 在线精品一区二区 | 99精品亚洲| 国产一区欧美二区 | 亚洲国产精品电影 | 女人高潮潮呻吟喷水 | 日本黄色xxxx| av第一区 | 免费看黄视频的网站 | 操夜夜操| 国产传媒中文字幕 | 日韩精品一区二区三区国语自制 | 亚洲熟妇无码爱v在线观看 九色福利 | 欧美精品一区二区三区在线 | 中文字幕丝袜诱惑 | 欧美图片自拍偷拍 | 欧美人妻一区二区三区 | ass极品水嫩小美女ass | 巨乳美女在线 | 日日骚影院 | 中国新婚夫妻性猛交 | 自拍偷拍第 | 国产第九页 | www视频在线观看网站 | 欧美激情亚洲色图 | 色欲av无码精品一区 | 国产911视频 | 欧美日韩一本 | 久久y | 一区二区三区四区日韩 | 91大神一区二区 | 国产a视频免费观看 | 日本大奶视频 | 国产在线二区 | 91成年版 | 免费成人av在线播放 | 114国产精品久久免费观看 | 亚洲国产精品午夜久久久 | 黄色国产一区 | 一二三区在线播放 | 色综合视频 | 午夜肉体高潮免费毛片 | 黄色片xxx | 欧美成人一区二免费视频软件 | 欧美裸体女人 | 老司机在线免费视频 | 亚洲高清在线视频 | 操穴网站| 毛片在线免费播放 | 日韩国产成人无码av毛片 | 国产制服av | 98久久久 | 热热热热色 | 亚洲爽爆 | 亚洲精品97久久中文字幕无码 | 国产香蕉网 | 伊人日韩| 无码人妻一区二区三区一 | 免费观看毛片 | 丰满少妇被猛烈进入一区二区 | 精品久久精品 | 鲁大师私人影院在线观看 |