函數——遞歸6(c++)

角谷猜想

題目描述

日本一位中學生發現一個奇妙的 定理,請角谷教授證明,而教授 無能為力,于是產生了角谷猜想。 猜想的內容:任給一個自然數, 若為偶數則除以2,若為奇數則乘 3加1,得到一個新的自然數后按 上面的法則繼續演算。若干次后 得到的結果必為1。

請編寫代碼驗 證該猜想:求經過多少次運算可 得到自然數1。

如:輸入22,則計算過程為。

22/2=11

11×3+1=34

34/2=17

17×3+1=52

52/2=26

26/2=13

13×3+1=40

40/2=20

20/2=10

10/2=5

5×3+1=16

16/2=8

8/2=4

4/2=2

2/2=1

經過15次運算得到自然數1。

輸入

一行,一個正整數n。 (1<=n<=20000)

?輸出

一行,一個整數,表示得到1 所用的運算次數。

樣例

輸入復制

22

輸出復制

?15

#include <bits/stdc++.h>
using namespace std;
int aaa(int);
int main()
{int a;cin>>a;cout<<aaa(a);return 0;
}
int aaa(int n)
{if(n==1) return 0;if(n%2==0) return 1+aaa(n/2);if(n%2==1) return 1+aaa(n*3+1);
}

求兩個數M和N的最大公約數

題目描述

求兩個正整整數 M 和 N 的最大公約數(M,N都在長整型范圍內)?

輸入

輸入一行,包括兩個正整數。

輸出

輸出只有一行,包括1個正整數。

樣例

輸入復制

45 60

輸出復制

15

#include <bits/stdc++.h>
using namespace std;
int aaa(int,int);
int main()
{int a,b;cin>>a>>b;cout<<aaa(a,b);return 0;
}
int aaa(int a,int b)
{if(a%b==0) return b;int sum = a%b;return aaa(b,sum);
}

數的計數

題目描述

輸入一個自然數n(n<=100)在該自然數的左側加上一個自然數,但加上的數不能超過n的一半;加上數后繼續按此規則處理,直到不能再添加自然數為止;請問按照這樣的方法添加數,能夠產生多少個新數?

?例如:n=6,則左側添加數的方案有 16 26 126 36 136 共能夠產生5個新數。

輸入

一個整數n

輸出

按照規則能夠產生的新數的個數

樣例

輸入復制

6

輸出復制

5

#include <bits/stdc++.h>
using namespace std;
int aaa(double,int);
int main()
{double a;cin>>a;cout<<aaa(a,0);return 0;
}
int aaa(double a,int cnt)
{if(a==2) return 1;if(a==1) return 0;if(a==3) return 1;for(int i = 1;i<=a/2;i++){cnt++;cnt = cnt+aaa(i,0);}return cnt;
}

放蘋果

題目描述

把M個同樣的蘋果放在N個同樣的盤子里,允許有的盤子空著不放,問共有多少種不同的分法?(用K 表示)

5,1,1和1,5,1 是同一種分法。

輸入

第一行是測試數據的數目t(0 <=t<=20)以下每行均 包含二個整數M和N,以空格分開。1<=m,n<=10。

輸出

對輸入的每組數據M和N,用一行輸出相應的K。

樣例輸入

1

7 3

樣例輸出

8

#include <bits/stdc++.h>
using namespace std;
int aaa(int,int);
int main()
{int i;cin>>i;int m[50],n[50];for(int j = 0;j<i;j++){cin>>m[j]>>n[j];}for(int j = 0;j<i;j++){cout<<aaa(m[j],n[j])<<endl;}return 0;
}
int aaa(int m,int n)
{if(m==1||n==1||m==0||n==0) return 1;if(m<0) return 0;if(m<n) return m;return aaa(m-n,n)+aaa(m,n-1);
}

#include <bits/stdc++.h>
using namespace std;
int aaa(int);
int main()
{int n;cin>>n;cout<<aaa(n);return 0;
}
int aaa(int n)
{if(n/10==0) return n;int sum = 0;int t = n;while(t!=0){sum = sum+t%10;t = t/10;}return aaa(sum);
}

#include <bits/stdc++.h>
using namespace std;
int aaa(int,int);
int main()
{int m,n;cin>>m>>n;cout<<aaa(m,n);return 0;
}
int aaa(int m,int n)
{if(m==0) return n+1;if(m>0&&n==0) return aaa(m-1,1);if(m>0&&n>0) return aaa(m-1,aaa(m,n-1));
}

回文數

題目描述

回文數的定義為:如果把一個數的各個數位上的數字顛倒過來得到的新數與原數相等,則此數是回文數, 例:7,22,131,2112,31013,…都是回文數。

對任意給出的一個整數n,經過一系列的處理,最后都能成為 回文數。處理的方法是,該數加上它的顛倒數。

例如:n=176

第一次處理后? ? ? 176+671=847

第二次處理后? ? ? 847+748=1595

第三次處理后? ? ? 1595+5951=7546

第四次處理后? ? ? 7546+6457=14003

第五次處理后? ? ? 14003+30041=44044

此時成為回文數,共進行5次處理。

問題:給出n 后,求出使該數按照以上規則進行一系列處理后成為回文數的最少操作次數。

#include <bits/stdc++.h>
using namespace std;
int aaa(int,int);
int main()
{int n;cin>>n;cout<<aaa(n,0);return 0;
}
int aaa(int n,int cnt)
{int sum = 0;int sum2 = 0;int t = n;while(t!=0){sum = sum*10+t%10;t = t/10;}if(sum==n) return cnt;sum2 = sum+n;t = sum2;sum = 0;while(t!=0){sum = sum*10+t%10;t = t/10;}cnt++;if(sum==sum2) return cnt;return cnt+aaa(sum2,0);
}

求兩個數M和N的最小公倍數

題目描述

求兩個正整整數 M 和 N 的最小公倍數(M,N都在長整型范圍內)

輸入

輸入一行,包括兩個正整數。

輸出

輸出只有一行,包括1個正整數。

樣例

輸入復制

45 60

輸出復制

180

#include <bits/stdc++.h>
using namespace std;
int a,b;
int aaa(int,int);
int main()
{cin>>a>>b;cout<<aaa(a,b);return 0;
}
int aaa(int n,int m)
{if(n%m==0) return a*b/m;int sum2 = n%m;return aaa(m,sum2);
}

#include <bits/stdc++.h>
using namespace std;
int aaa(int,int);
int main()
{int n,x;cin>>n>>x;cout<<aaa(n,x);return 0;
}
int aaa(int n,int x)
{if(n==0) return 1;if(n==1) return 2*x;if(n>1) return 2*x*aaa(n-1,x)-2*(n-1)*aaa(n-2,x);
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712548.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712548.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712548.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git命令整理

一、什么是git Git 是為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件。 分布式管理系統&#xff0c;可以快速的查看文件各個版本的改動。比如在第5行加了一個單詞“Linux”&#xff0c;在第8行刪了一個單詞“Windows”。而圖片、視頻這些二進制文件&#xf…

PyTorch深度學習快速入門

PyTorch深度學習快速入門 1.PyTorch環境配置及安裝2.python編輯器的選擇、安裝、配置&#xff08;pycharm、JupyTer安裝&#xff09;3.為什么torch.cuda.is_available()返回false4.python學習中兩大法寶函數&#xff08;也可用在pytorch&#xff09;5.pycharm和jupyter&#xf…

golang goroutine 如何退出?

上一講說到調度器將maingoroutine推上舞臺&#xff0c;為它鋪好了道路&#xff0c;開始執行runtime.main函數。這一講&#xff0c;我們探索maingoroutine以及普通goroutine從執行到退出的整個過程。 //Themaingoroutine. funcmain(){ //gmaingoroutine&#xff0c;不再是g0了 …

Python列表中添加刪除元素不走彎路

1.append() 向列表中添加單個元素&#xff0c;一般用于尾部追加 list1 ["香妃", "乾隆", "賈南風", "趙飛燕", "漢武帝"]list1.append("周瑜") print(list1) # [香妃, 乾隆, 賈南風, 趙飛燕, 漢武帝, 周瑜]…

STM32標準庫——(14)I2C通信協議、MPU6050簡介

1.I2C通信 I2C 通訊協議(Inter&#xff0d;Integrated Circuit)是由Phiilps公司開發的&#xff0c;由于它引腳少&#xff0c;硬件實現簡單&#xff0c;可擴展性強&#xff0c; 不需要USART、CAN等通訊協議的外部收發設備&#xff0c;現在被廣泛地使用在系統內多個集成電路(IC)間…

【LeetCode每日一題】【BFS模版與例題】863.二叉樹中所有距離為 K 的結點

BFS的基本概念 BFS 是廣度優先搜索&#xff08;Breadth-First Search&#xff09;的縮寫&#xff0c;是一種圖遍歷算法。它從給定的起始節點開始&#xff0c;逐層遍歷圖中的節點&#xff0c;直到遍歷到目標節點或者遍歷完所有可達節點。 BFS 算法的核心思想是先訪問當前節點的…

計算機網絡_2.2物理層下面的傳輸媒體

2.2物理層下面的傳輸媒體 一、傳輸媒體的分類二、導向型傳輸媒體1、同軸電纜2、雙絞線3、光纖&#xff08;1&#xff09;光纖通信原理&#xff08;2&#xff09;光纖組成&#xff08;4&#xff09;多模光纖與單模光纖對比&#xff08;5&#xff09;光纖的波長與規格&#xff08…

海量淘寶商品數據如何實現自動化抓取?

隨著電子商務的飛速發展&#xff0c;淘寶作為中國最大的網絡購物平臺之一&#xff0c;其商品數據具有極高的商業價值。然而&#xff0c;如何有效地從海量的淘寶商品數據中抓取所需信息&#xff0c;成為了一個技術挑戰。本文將深入探討如何實現淘寶商品數據的自動化抓取&#xf…

c# using 用法

using命令空間 導入命名空間中的所有類型 如&#xff1a;using System.Text; using別名 using別名包括詳細命名空間信息的具體類型&#xff0c;這種做法有個好處就是當同一個cs引用了兩個不同的命名空間&#xff0c;但兩個命名空間都包括了一個相同名字的類型的時候。當需要…

SQL加鎖機制深度解析:不同隔離級別與索引類型的影響

首先&#xff0c;我們先理解一下涉及的幾個核心概念&#xff1a; 主鍵 (Primary Key): 主鍵是數據庫表中的特殊列&#xff0c;用于唯一標識表中的每一行。它不能有重復值&#xff0c;也不能有NULL值。 唯一索引 (Unique Index): 唯一索引類似于主鍵&#xff0c;但它允許NULL值…

數據可視化基礎與應用-02-基于powerbi實現連鎖糕點店數據集的儀表盤制作

總結 本系列是數據可視化基礎與應用的第02篇&#xff0c;主要介紹基于powerbi實現一個連鎖糕點店數據集的儀表盤制作。 數據集描述 有一個數據集&#xff0c;包含四張工作簿&#xff0c;每個工作簿是一張表&#xff0c;其中可以銷售表可以劃分為事實表&#xff0c;產品表&am…

【Python小技巧】將list變量寫入本地txt文件并讀出為list變量的方法(附代碼)

文章目錄 前言一、萬能的txt和eval大法二、具體代碼和使用方法總結 前言 使用Python&#xff0c;我們偶爾需要將一些變量保存到本地&#xff0c;并被其它代碼讀取作為參數&#xff0c;那么怎么辦呢&#xff1f; 一、萬能的txt和eval大法 這里教大家一個簡單的方法&#xff0c…

912. 排序數組(快速排序)

快速排序&#xff1a; 分&#xff1a;找到分成兩部分進行排序的pos&#xff08;使用partition&#xff09;治&#xff1a;分別對這兩部分進行快速排序 重點&#xff1a;partition 找到pivot&#xff08;兩個方法&#xff1a;1. 取第一個值&#xff1b;2. 取隨機值&#xff09…

Linux時間同步(PPS、PTP、chrony)分析筆記

1 PPS(pulse per second) 1.1 簡介 LinuxPPS provides a programming interface (API) to define in the system several PPS sources. PPS means "pulse per second" and a PPS source is just a device which provides a high precision signal each second so t…

每日一題 2673使二叉樹所有路徑值相等的最小代價

2673. 使二叉樹所有路徑值相等的最小代價 題目描述&#xff1a; 給你一個整數 n 表示一棵 滿二叉樹 里面節點的數目&#xff0c;節點編號從 1 到 n 。根節點編號為 1 &#xff0c;樹中每個非葉子節點 i 都有兩個孩子&#xff0c;分別是左孩子 2 * i 和右孩子 2 * i 1 。 樹…

Java緩存簡介

內存訪問速度和硬盤訪問速度是計算機系統中兩個非常重要的性能指標。 內存訪問速度&#xff1a;內存是計算機中最快的存儲介質&#xff0c;它的訪問速度可以達到幾納秒級別。內存中的數據可以直接被CPU訪問&#xff0c;因此讀寫速度非常快。 硬盤訪問速度&…

學習和工作的投入產出比(節選)

人工智能統領全文 推薦包含關于投入、產出、過剩、市場關注、案例、結果和避雷等主題的信息&#xff1a; 投入與產出&#xff1a; 投入和產出都有直接和間接兩類常見形式。常見的四種組合是&#xff1a;直接投入、直接產出、間接投入、間接產出。 過剩&#xff1a; 過剩是一個重…

力扣SQL50 無效的推文 查詢

Problem: 1683. 無效的推文 思路 &#x1f468;?&#x1f3eb; 參考 char_length(str)&#xff1a;計算 str 的字符長度length(str)&#xff1a;計算 str 的字節長度 Code select tweet_id from Tweets where char_length(content) > 15;

C++與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累

C與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累 以下內容來自&#xff1a;C與 Fluke5500A設備通過GPIB-USB-B通信的經驗積累 - JMarcus - 博客園 (cnblogs.com)START 1.需要安裝NI-488.2.281&#xff0c;安裝好了之后&#xff0c;GPIB-USB-B的驅動就自動安裝好了 注意版本…

動態規劃(算法競賽、藍橋杯)--單調隊列滑動窗口與連續子序列的最大和

1、B站視頻鏈接&#xff1a;E11【模板】單調隊列 滑動窗口最值_嗶哩嗶哩_bilibili 題目鏈接&#xff1a;滑動窗口 /【模板】單調隊列 - 洛谷 #include <bits/stdc.h> using namespace std; const int N1000010; int a[N],q[N];//q存的是元素的下標 int main(){int n,k;…