1. 程式人生 > >演算法實驗手冊1.2

演算法實驗手冊1.2

三齒輪問題

問題描述:

三個齒輪齧合。如圖在齒輪箱裡三個齒輪互相銜接,某瞬間兩對齒相遇,設計一個演算法求出,各齒輪各轉多少圈後,這兩對齒同時重逢。如圖示。(說明:用a,b,c分別表示三個齒輪的齒數。)

演算法設計:

給定三個齒輪的齒數a,b,c(a,b,c是大小不等的正整數),計算出三個齒輪各轉多少圈後,這兩對齒輪同時重逢。

資料輸入:

由檔案input.txt提供輸入資料。檔案有3行,每行分別是三個齒輪的齒數a,b,c。

結果輸出:

當兩對齒同時重逢時,把每個齒輪轉的圈數按輸入先後順序分3行輸出到檔案output.txt中。

輸入檔案示例:

3

4

5

輸出檔案示例:

20

15

12

#include<iostream>
using namespace std;
int divisor(int a,int b)
{
	int c;
	c = a%b;
	if (c == 0)
		return b;
	else
		divisor(b, c);
}
int main()
{
	int a, b, c;
	cin >> a >> b >> c;
	int temp = a*b/divisor(a, b);
	int temp1 = temp*c/divisor(temp, c);
	cout << temp1 / a << endl<<temp1 / b <<endl<< temp1 / c;
	getchar(); getchar();
}

相關推薦

演算法實驗手冊1.2

三齒輪問題問題描述:三個齒輪齧合。如圖在齒輪箱裡三個齒輪互相銜接,某瞬間兩對齒相遇,設計一個演算法求出,各齒輪各轉多少圈後,這兩對齒同時重逢。如圖示。(說明:用a,b,c分別表示三個齒輪的齒數。)演算法設計:給定三個齒輪的齒數a,b,c(a,b,c是大小不等的正整數),計算出

演算法實驗1.2:連續整數和問題

問題描述:大部分的正整數可以表示為2個以上的連續整數之和。如6=1+2+3,9=5+4=2+3+4。 實驗任務:連續整數和問題要求計算給定的正整數可以表示為多少個2以上連續整數之和。 資料輸入:由檔案

演算法實驗手冊1.1

猴子吃棗問提描述:小猴第一天摘下若干棗子,當即吃掉了一半,不過癮又多吃了一個;第二天吃了剩下的一半又多吃了一個;以後每一天都吃了前一天剩下的一半多一個。到第十天小猴再想吃時,見到只剩下一隻棗子了。試設計一個遞迴演算法計算第一天這堆棗子有多少?演算法設計:根據問題描述,用遞迴法

演算法導論 10.1-2 用一個數組實現兩個棧

一、題目說明如何用一個數組A[1..n]來實現兩個棧,使得兩個棧中的元素總和不到n時,兩個都不會發生上溯。注意PUSH和POP操作的時間應為O(1)二、思考分別用陣列的兩端作為兩個棧的起點,向中間擴充套

實驗7-1-2 求最大值及其下標(20 分)

/* 時間:2018年4月6日16:13:18 思路:設最大值為a[0],遍歷陣列,找打最大值對應的下標,並記錄下來。 */ #include<stdio.h> #define N 10 i

字典序問題(計算機演算法與分析 1-2 王曉東)

問題描述: 在資料加密和資料壓縮中常需要對特殊的字串進行編碼.給定的字母表A由26個小寫英文字母組成,即A={a,b...z}.該 字母表產生的長序字串是指定字串中字母從左到右出現的次序與字母在字母表中出現的次序相同,且每個字元最 多出現1次.例如,a,b,ab,bc,xy

【資料結構與演算法分析】1.2 編寫程式解決字謎問題

原博:http://blog.csdn.net/u013667086/article/details/49179741 問題描述:       從已知的字謎中找出在字典中的單詞 解決思路:        1、用指標陣列存放字謎和字典單詞        2、將字典單

演算法入門 6.1.2 鐵軌

重點:stack和queue 1.先檢查兩個佇列頭是否相等,若不等,檢查出佇列頭和棧頭是否相等,若不等,檢查入佇列是否為空,若非空入棧,否則跳出迴圈 2.每次訪問入佇列和棧首元素時,注意其是否存在; 實現程式碼: #include <iostream> #in

從0到1簡易區塊鏈開發手冊V0.2-創建錢包

alt 不存在 引導 shadow ado 校驗 圖片 vat tps 1.概念 創建錢包其實就是創建比特幣地址,在比特幣世界中,沒有賬戶概念,不需要也不會在任何地方存儲個人數據(比如姓名,×××件號碼等)。但是,我們總要有某種途徑識別出你是交易輸出的所有者(也就是說,你擁

對只含0,1,2三種元素的陣列設計一種O(n)時間的排序演算法

針對只含0,1,2三種元素的陣列的一種O(n)時間的排序演算法 1. 問題重述 給定一個整型陣列,陣列中的元素只有三種:0,1,2,例如:[1 ,2 ,0 ,0 ,2 ,1 ,2 ,1 ,1 ,0 ,2 ,2 ,1 ,0 ],試設計一個時間複雜度為O(n),空間複雜度為O(1)的演算法,

字典序問題(演算法課本課後實現題1-2

題目描述:        在資料加密和資料壓縮中常需要對特殊的字串進行編碼.給定的字母表A由26個小寫英文字母組成,即A={a,b...z}.該字母表產生的升序字串是指定字串中字母從左到右出現的次序與字母在字母表中出現的次序相同,且每個字元最多出

Python演算法入門——第12,氣泡排序

上一篇文章已經說過,桶排序會極大地浪費資源,因此需要用一種更簡單的排序方式來完成:氣泡排序。其原理是1.從第一個數字開始,與第二個數進行比較,如果小於第二個數(按從大到小排序),則將其交換數值;2.接著,第二個數與第三個數比較,重複此步驟,直至完成與最後一個數的比較。這樣,第一個數就到了它應該呆的地

資料庫實驗課堂作業-1.2資料查詢

資料庫實驗課堂實驗 1.2資料查詢 內容: 1).單表查詢 :查詢的目標表達式為所有列,指定列或指定列的運算。 :使用DISTINCT保留字消除重複性。 :對查詢結果排序和分組。 :集合分組使用集函式進行各項統計。 2).連線查詢 :笛卡爾積連線和等

atitit 解決教學記憶問題 壓縮演算法原理 哈夫曼 LZ77 gzip zlib deflate演算法.docx 目錄 1. 壓縮理論 1 1.1. 柯氏複雜性 1 2. 1 RLE 1

atitit 解決教學記憶問題 壓縮演算法原理  哈夫曼 LZ77  gzip   zlib deflate演算法.docx     目錄 1. 壓縮理論 1 1.1. 柯氏複雜性

Avocado使用手冊(1) --環境安裝部分 (For Big Cloud Enterprise Linux 7.2)

1. avocado安裝 可以從Avocado專案RPM儲存庫獲得Enterprise Linux的Avocado軟體包。此外,EPEL倉庫中的一些包是必需的,因此您需要先啟用它。對於EL7,執行以下命令應該這樣做: yum install https://dl.fedorapr

人工智慧初學- 1.2 最大似然估計及貝葉斯演算法

最大似然思想 最大似然法是一種具有理論性的引數估計方法。         基本思想是:當從模型總體隨機抽取n組樣本觀測值後,最合理的引數估計量應該使得從模型中抽取該n組樣本觀測值的概率最大。一般步驟包括: 寫出似然函式 對似然

目錄 1.1. JVM記憶體模型總體架構圖 1 1.2. JAVA堆 2 1.3. 方法區 元空間(Metaspace) 2 1.4. 虛擬機器棧 3 1.5. 本地方法區 4 2. 垃圾回收演算法 4 2

目錄 1.1. JVM記憶體模型總體架構圖 1 1.2. JAVA堆 2 1.3. 方法區 元空間(Metaspace) 2 1.4. 虛擬機器棧 3 1.5. 本地方法區 4 2. 垃圾回收演算法 4 2.1. 標記-清除演算法(Mark-Sweep) 4

Atitit 演算法原理與導論 目錄 1. Attilax總結的有用演算法 按用途分類 1 1.1. 排序演算法 字串匹配(String Matching) 1 1.2. 加密演算法 編碼演算法 序列

Atitit 演算法原理與導論   目錄 1. Attilax總結的有用演算法 按用途分類 1 1.1. 排序演算法  字串匹配(String Matching) 1 1.2. 加密演算法  編碼演算法  序列化演算法 1 1.3. 查

第三章 1/2 . 處理機排程與常見演算法+死鎖

處理機排程:多道程式環境下,動態的吧處理機分配給就緒佇列中的一個程序使之執行 提高處理機的利用率、改善系統性能,很大程度上取決於處理機排程的效能。 處理機排程便成為OS設計的中心問題之一。分配的任務由處理機排程程式完成 三級排程:高階排程、中級排程、低階排程 1、高階排程( 作業排程 或

組合語言(第三版)實驗10-12

1.顯示字串 子程式描述: 名稱:show_str 功能:在指定的位置,用指定的顏色,顯示一個用0結束的字串。 引數:(dh)=行號(取值範圍0~24),(dl)=列號(取值範圍0~79), (