1. 程式人生 > >C語言貪心演算法,關於零錢取整問題

C語言貪心演算法,關於零錢取整問題

#include<stdio.h>
void greedyMoney(int m[],int k,int n);
int main(void)
{
  int money[] = {50,20,10,5,2,1};
  int k;
  k = sizeof(money)/sizeof(money[0]);
  greedyMoney(money,k,125);
  //system("PAUSE");
}/*
*  m[]:存放可供找零的面值,降序排列
*   k:可供找零的面值種類數
*   n:需要找零數
*/


void greedyMoney(int m[],int k,int n)
{
   int
i; for(i=0;i<k;i++) { while(n>=m[i] && n>0) { printf("%d.",m[i]); n = n-m[i]; } } printf("\n"); }

另外一種精簡形式易懂的:

#include<stdio.h>
int main(){
    int money;
    printf("請輸入你要找回的零錢總數:"); 
    scanf("%d",&money);
    printf
("5分的硬幣個數:%d\n2分的硬幣個數:%d\n1分的硬幣個數:%d",money/5,money%5/2,money%5%2); }

這裡寫圖片描述

相關推薦

C語言貪心演算法關於零錢問題

#include<stdio.h> void greedyMoney(int m[],int k,int n); int main(void) { int money[] = {50,20,10,5,2,1}; int k; k = si

C語言貪心演算法之找點

找點 時間限制:2000 ms  |  記憶體限制:65535 KB 難度:2 描述 上數學課時,老師給了LYH一些閉區間,讓他取儘量少的點,使得每個閉區間內至少有一個點。但是這幾天LYH太忙了,你們幫幫他嗎? 輸入多組測試資料。 每組資料先輸入一個N,表

C語言貪心演算法

貪心演算法 所謂貪心演算法是指,在對問題求解時,總是做出在當前看來是最好的選擇。也就是說,不從整體最優上加以考慮,他所做出的僅是在某種意義上的區域性最優解。 貪心演算法不是對所有問題都能得到整體最優解,但對範圍相當廣泛的許多問題他能產生整體最優解或者是整體最優解的近似解。 貪心演算法的基本思路如下: 1.建立

C語言貪心演算法之過河問題

過河問題 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:5 描述 在漆黑的夜裡,N位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,N個人一共只帶了一隻手電筒,而橋窄得只夠讓兩個人同時過。如

C語言貪心演算法之貪婪的老鼠

Greedy Mouse 時間限制:1000 ms  |  記憶體限制:65535 KB 難度:3 描述 A fat mouse prepared M pounds of cat food,ready to trade with the cats guardin

(轉)C/C++ 函數ceil(),floor()向上向下

ceil 最小整數 1.2 ria 使用 整數 html follow line 轉自: C/C++ 取整函數ceil(),floor() C/C++ 取整函數ceil(),floor() #include <math.h> double flo

c# 小數四捨五入向上向下見角進元保留多個小數位數

/// <summary> /// 實現資料的四捨五入法 /// </summary> /// <param name="v">要進行處理的資料</param> /// <param n

C語言實現1個無符號型的十進位制數按照要求轉換為二進位制並輸出

輸入1個無符號整型的十進位制數,將其轉換成二進位制,並輸出。(6分) 題目內容: 從鍵盤輸入1個小於65536的無符號整型的十進位制數,將其轉換成二進位制,並輸出。 具體要求完成的功能如下: 1)如輸入負數,則顯示 “請輸入非負數” 2)如超過65535,則顯示

哈夫曼壓縮演算法C語言實現——步驟詳細註釋原始碼

哈夫曼壓縮演算法的詳細實現步驟: 1、定義哈夫曼樹節點,用結構體。 2、利用C語言檔案讀寫,統計字元個數。 3、根據字元個數建立哈夫曼樹(不懂haffman資料結構的自己查下資料,我這裡就不再重複了) 4、根據哈夫曼樹為每個出現的字元編碼 5、壓縮:這裡涉及到位操作,用ch

c++四捨五入函式向上向下函式

對含有小數點的數進行四捨五入是比較普遍的一種需求。在C++中也有類似的取整函式。在C++的標頭檔案中有floor()和ceil()函式。在STL中還有round()函式。這三個函式的作用如下: 函式名稱 函式說明 2.1 2.9 -2.1 -2.9 Floor() 不大於自

C語言經典演算法:輸入某年某月某日判斷這一天是這一年的第幾天?

題目:輸入某年某月某日,判斷這一天是這一年的第幾天?1.程式分析:以3月5日為例,應該先把前兩個月的加起來,然後再加上5天即本年的第幾天,特殊      情況,閏年且輸入月份大於3時需考慮多加一天。2.程式原始碼:main(){int day,month,year,sum,l

C語言】寫程式碼可以在型有序陣列中查詢想要的數字找到了返回下標找不到返回-1.(折半查詢)

定義一個數組,設定它的左右下標,同時定義一箇中間下標mid,每次進行折半查詢,若要查詢的數比mid小,則右下標等於mid-1,若要查詢的數比mid大,則左下標等於mid+1。若要查詢的數等於mid,則迴圈停止。 #include<stdio.h> #include<string

C/C++ 函式ceil(),floor()向上向下

#include <math.h> double floor(double x); float floorf(float x); long double floorl(long double x); double floor(double x); double ceil(double x

在面試中你會經常遇到的10大C語言基礎演算法(下)

6、檢查一個數能不能表示成兩個質數之和http://www.fdjzxyy.com原始碼:#include <stdio.h>int prime(int n);int main(){   int n, i, flag=0;   printf("Enter a po

C語言字符字符串字節操作常用函數

字符串 int 數組 限制 一個 覆蓋 ron 註意 都是 strlen 這個函數是在 string.h 的頭文件中定義的 它的函數原型是 size_t strlen( const char ); size_t 是一個無符號整型,是這樣定義的 typedef unsi

c語言—棧區堆區全局區文字常量區程序代碼區 詳解

註意 進制 但是 ack int 運行時 內存區域 否則 數組 轉:http://www.cnblogs.com/xiaowenhui/p/4669684.html 一、預備知識—程序的內存分配 一個由C/C++編譯的程序占用的內存分為以下幾個部分1、棧區(stack)—

C語言/原子/編譯你真的明白了嗎?

clas done ati pre 內存 程序 導致 裏的 creat   說到原子,類似於以下的代碼可能人人都可以看出貓膩。 #include <stdio.h> #include <pthread.h> int cnt = 0;

python 向下向上四舍五入

int class nbsp bubuko alt div floor inf num # python 向下取整 floor 向上取整ceil 四舍五入 round import math num=3.1415926 # 向上取整 print(math.ceil(num

最美的C語言程序流體你會做嗎?

分享 eba back microsoft media style .cn http 函數 最美的C語言流體閱讀須知 1 編譯器:vs 2 圖形庫插件 3 四肢健全者 4代碼段 全局變量代碼段 主要函數主函數 mian函數效果最美的C語言程序流體,你會做嗎?