函数——递归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]);}return 0;
}
int aaa(int m,int n)
{if(m==1||n==1) return 1;if(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://xiahunao.cn/news/2808370.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解JS的执行上下文、词法作用域和闭包(下)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

mvn版本导致的Failed to execute goal on project问题与解决

目录 一&#xff0c;报错情况与原因二&#xff0c;maven的下载与安装1&#xff0c;卸载maven2&#xff0c;安装mvn3&#xff0c;指定mvn的默认版本&#xff1a; 一&#xff0c;报错情况与原因 使用命令mvn package时会报如下错误&#xff1a; Failed to execute goal on proj…

prometheus+grafana监控nginx的简单实现

1.编译安装NGINX 加入编译安装nginx-module-vts模块,目的是为了获取更多的监控数据(虚拟主机&#xff0c;upstream等) nginx下载 http://nginx.org/download/nginx-1.20.2.tar.gz nginx-module-vts下载 https://github.com/vozlt/nginx-module-vts/archive/refs/tags/v0.2…

9.5K Star,又一款超棒开源轻量自动化运维平台

Hi&#xff0c;骚年&#xff0c;我是大 G&#xff0c;公众号「GitHub指北」会推荐 GitHub 上有趣有用的项目&#xff0c;一分钟 get 一个优秀的开源项目&#xff0c;挖掘开源的价值&#xff0c;欢迎关注。 一个好的运维平台就变得非常重要了&#xff0c;可以节省大量的人力和物…

冯诺依曼体系结构 与 操作系统

一、冯诺依曼体系结构 深入理解冯诺依曼体系结构 计算机的出现就是为了解决实际问题, 所以把问题交给计算机&#xff0c;计算机经过处理&#xff0c;得到一个结果反馈给我们&#xff0c;所以这中间就必然涉及到了输入设备&#xff0c;中央处理器(包括运算器和控制器)和输出设备…

【读后感】《枪炮、病菌与钢铁》人类社会的命运

初看这个书名其实感到困惑&#xff0c;风马牛不相及的三个名词怎么就凑到一起了&#xff0c;这书是讲什么的。 先说结论&#xff0c;讲的是人类历史&#xff0c;具体是1.3万年前开始至今的历史以及现代世界格局的形成&#xff0c;1.3万年前从这个时间节点以后&#xff0c;不论…

勇宝趣学JavaScript ES6第二章(解构赋值)

在ES6中&#xff0c;我们经常使用到解构赋值这个知识点&#xff0c;今天我们就来好好讲讲这一小部分知识点。咱们争取这回一次性讲明白。 今天是元宵节&#xff0c;祝大家节日快乐&#xff0c;只有我自己还在无聊的码字。 给我点个赞吧&#xff0c;嘿嘿&#xff01;&#xff01…

MySQL数据库进阶第四篇(视图/存储过程/触发器)

文章目录 一、视图简单介绍与基础语法二、视图的检查选项三、视图的更新四、视图的作用五、存储过程的概念与特点六、存储过程的 创建&#xff0c;调用&#xff0c;查看&#xff0c;删除七、存储过程 — 系统变量八、存储过程 — 用户定义变量九、存储过程 — 局部变量十、存储…

acwing算法学习笔记 ------ 双链表

1、定义 这里可以做一个投机取巧&#xff0c;我们不再像单链表去用head去存头和尾&#xff0c;直接让r[0] 1,l[1] 0; idx 2.进行初始化&#xff0c; 解释一下l[N] 和 r[N] l[N]:是表示指向左面下一个节点下标&#xff0c; r[N]:表示指向下一个节点的下标。大家不用担心i…

[VNCTF2024]-PWN:shellcode_master解析(orw,用mmap代替read读文件)

查看保护 查看ida 在sandbox函数中&#xff0c;函数先使用了seccomp_init初始化&#xff0c;允许了所有系统调用&#xff0c;再用seccomp_rule_add来禁用掉了部分系统调用&#xff0c;其中包括execve和read seccomp_init函数可以进行系统调用全禁用和全允许初始化 seccomp_ru…

《高质量的C/C++编程规范》学习

目录 一、编程规范基础知识 1、头文件 2、程序的板式风格 3、命名规则 二、表达式和基本语句 1、运算符的优先级 2、复合表达式 3、if语句 4、循环语句的效率 5、for循环语句 6、switch语句 三、常量 1、#define和const比较 2、常量定义规则 四、函数设计 1、参…

python_pyecharts绘制漏斗图

python-pyecharts绘制漏斗图 from pyecharts.charts import Funnel from pyecharts import options as opts# 数据 data [("访问", 100), ("咨询", 80), ("订单", 60), ("点击", 40), ("展现", 20)]# 创建漏斗图 funnel …

uvloop,一个强大的 Python 异步IO编程库!

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站零基础入门的AI学习网站~。 目录 ​编辑 前言 什么是uvloop库&#xff1f; 安装uvloop库 使用uvloop库 uvloop库的功能特性 1. 更…

【信息提取】FindSomething 浏览器插件

下载地址 FindSomething 浏览器插件 概述 在网页的源代码或js中找到一些有趣的东西 FindSomething 用于快速在网页的html源码或js代码中提取一些有趣的信息&#xff0c;包括可能请求的资源、接口的url&#xff0c;可能请求的ip和域名&#xff0c;泄漏的证件号、手机号、邮箱…

程序员可以做什么副业呢?

如果你经常玩知乎、看公众号&#xff08;软件、工具、互联网这几类的&#xff09;你就会发现&#xff0c;好多资源连接都变成了夸克网盘、迅雷网盘的资源链接。 例如&#xff1a;天涯神贴&#xff0c;基本上全是夸克、UC、迅雷网盘的资源链接。 有资源的前提下&#xff0c;迅雷…

2024年云南事业单位报名流程!明天就开始报名啦,千万不要错过哦

注意啦&#xff01;注意啦&#xff01;2024年云南事业单位报名即将开始&#xff01; ▶️公告已发布&#xff0c;2月26日上午9&#xff1a;00开始报名‼️ 相关时间节点 **报名时间&#xff1a;**2024年2月26日9:00至3月1日18:00 **资格初审时间&#xff1a;**2024年2月26日…

【Python】Windows本地映射远程Linux服务器上的端口(解决jupyter notebook无法启动问题)

创作日志&#xff1a; 学习深度学习不想在本地破电脑上再安装各种软件&#xff0c;我就用实验室的服务器配置环境&#xff0c;启动jupyter notebook时脑子又瓦特了&#xff0c;在自己Windows电脑上打开服务器提供的网址&#xff0c;那肯定打不开啊&#xff0c;以前在其它电脑上…

【服务发现--service】

1、service的定义 "Service"简写"svc”。Pod不能直接提供给外网访问&#xff0c;而是应该使用service。Service就是把Pod暴露出来提供服务&#xff0c;Service才是真正的“服务”&#xff0c;它的中文名就叫“服务”。可以说Service是一个应用服务的抽象&#…

校园微社区微信小程序源码/二手交易/兼职交友微信小程序源码

云开发校园微社区微信小程序开源源码&#xff0c;这是一款云开发校园微社区-二手交易_兼职_交友_项目微信小程序开源源码&#xff0c;可以给你提供快捷方便的校园生活&#xff0c;有很多有趣实用的板块和功能&#xff0c;如&#xff1a;闲置交易、表白交友、疑问互答、任务兼职…

C++ //练习 8.9 使用你为8.1.2节(第281页)第一个练习所编写的函数打印一个istringstream对象的内容。

C Primer&#xff08;第5版&#xff09; 练习 8.9 练习 8.9 使用你为8.1.2节&#xff08;第281页&#xff09;第一个练习所编写的函数打印一个istringstream对象的内容。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /*****…