函数——递归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://www.mfbz.cn/a/408796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JDK8新特性全解析:Java8变革之旅

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

云原生之容器编排实践-ruoyi-cloud项目部署到K8S:MySQL8

背景 前面搭建好了 Kubernetes 集群与私有镜像仓库&#xff0c;终于要进入服务编排的实践环节了。本系列拿 ruoyi-cloud 项目进行练手&#xff0c;按照 MySQL &#xff0c; Nacos &#xff0c; Redis &#xff0c; Nginx &#xff0c; Gateway &#xff0c; Auth &#xff0c;…

测试圈的网红工具:Jmeter到底难在哪里?!

小欧的公司最近推出了一款在线购物应用&#xff0c;吸引了大量用户。然而随着用户数量的增加&#xff0c;应用的性能开始出现问题。用户抱怨说购物过程中页面加载缓慢&#xff0c;甚至有时候无法完成订单&#xff0c;小欧作为负责人员迫切需要找到解决方案。 在学习JMeter之前…

[VNCTF2024]-Web:CheckIn解析

查看网页 一款很经典的游戏&#xff0c;而且是用js写的 在调试器里面我们可以看见&#xff0c;如果游戏通关的话&#xff0c;它会进行一系列操作&#xff0c;包括使用console.log(_0x3d9d[0]);输出_0x3d9d[0]到控制台&#xff0c;那我们就直接在点击在控制台求出它的值

基于SpringBoot实现的医院药品管理系统

一、系统架构 前端&#xff1a;html | layui | js | css 后端&#xff1a;springboot | mybatis-plus 环境&#xff1a;jdk1.6 | mysql | maven 二、代码及数据库 三、功能介绍 01. 登录页 02. 药品库存管理-登记出入口信息 03. 药品库存管理-问题药品信息 …

软考45-上午题-【数据库】-数据操纵语言DML

一、INSERT插入语句 向SQL的基本表中插入数据有两种方式&#xff1a; ①直接插入元组值 ②插入一个查询的结果值 1-1、直接插入元组值 【注意】&#xff1a; 列名序列是可选的&#xff0c;若是所有列都要插入数值&#xff0c;则可以不写列名序列。 示例&#xff1a; 1-2、插…

基于ZYNQ的PCIE高速数据采集卡的设计(二)总体设计与上位机

采集卡总体设计及相关技术 2.1 引言 本课题是来源于雷达辐射源识别项目&#xff0c;需要对雷达辐射源中频信号进行采集传输 和存储。本章基于项目需求&#xff0c;介绍采集卡的总体设计方案。采集卡设计包括硬件设计 和软件设计。首先对采集卡的性能和指标进行分析&#x…

ELK 简介安装

1、概念介绍 日志介绍 日志就是程序产生的&#xff0c;遵循一定格式&#xff08;通常包含时间戳&#xff09;的文本数据。 通常日志由服务器生成&#xff0c;输出到不同的文件中&#xff0c;一般会有系统日志、 应用日志、安全日志。这些日志分散地存储在不同的机器上。 日志…

如何使用移动端设备在公网环境远程访问本地黑群晖

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

深度学习500问——Chapter01:数学基础

文章目录 前言 1.1 向量和矩阵 1.1.1 标量、向量、矩阵、张量之间的联系 1.1.2 张量与矩阵的区别 1.1.3 矩阵和向量相乘结果 1.1.4 向量和矩阵的范数归纳 1.1.5 如何判断一个矩阵为正定 1.2 导数和偏导数 1.2.1 导数偏导计算 1.2.2 导数和偏导数有什么区别 1.3 特征值和特征向量…

第6.3章:StarRocks查询加速——Bucket Shuffle Join

目录 一、StarRocks数据划分 1.1 分区 1.2 分桶 二、Bucket Shuffle Join实现原理 2.1 Bucket Shuffle Join概述 2.2 Bucket Shuffle Join工作原理 2.3 Bucket Shuffle Join规划规则 三、应用案例 注&#xff1a;本篇文章阐述的是StarRocks-3.2版本的Bucket Shuffle Jo…

rtsp推拉流

1.搭建视频服务器 smart-rtmpd: smart_rtmpd 是一款 rtmp、rtsp 服务器&#xff0c;非常好用&#xff0c;解压既运行&#xff0c;支持跨平台&#xff0c;无任何依赖&#xff0c;性能和 SRS 相比不分上下 2.推拉流 下载windows版本ffmpeg,并设置环境变量. 推流 ffmpeg -re -st…

26.java-单元测试xml注解

单元测试&xml&注解 单元测试 单元测试就是针对最小的功能单元编写测试代码&#xff0c;Java程序最小的功能单元是方法&#xff0c;因此&#xff0c;单元测试就是针对 Java 方法的测试&#xff0c;进而检查方法的正确性。 简单理解 : 就是一个测试代码的工具 目前测试…

BUU [CISCN2019 华东南赛区]Web4

BUU [CISCN2019 华东南赛区]Web4 题目描述&#xff1a;Click to launch instance. 开题&#xff1a; 点击链接&#xff0c;有点像SSRF 使用local_file://协议读到本地文件&#xff0c;无法使用file://协议读取&#xff0c;有过滤。 local_file://协议&#xff1a; local_file…

linux---安使用nginx

目录 一、编译安装Nginx 1、关闭防火墙&#xff0c;将安装nginx所需要软件包传到/opt目录下 ​编辑2、安装依赖包 3、创建运行用户、组 4、编译安装nginx 5、创建软链接后直接nginx启动 ​编辑 6、创建nginx自启动文件 ​编辑6.1 重新加载配置、设置开机自启并开启服务…

中国象棋开源人工智能程序(带UI)搬运

我的老父亲一直想买一个人工智能象棋机器人陪他下棋&#xff0c;我就在Github上找了一个开源项目&#xff0c;带UI的中国象棋人工智能程序&#xff0c;其训练方法类似AlphaZero&#xff0c;因而叫Chinese Chess Zero (cczero)。虽然看起来很久没有维护了&#xff0c;但是棋力也…

Spring 容器、核心容器总结

目录 创建容器获取 bean容器类层次结构图核心容器总结容器相关bean 相关依赖注入相关 创建容器 方式一&#xff1a; 类路径加载配置文件 ApplicationContext ctx new ClassPathXmlApplicationContext("applicationContext.xml");方式二&#xff1a; 文件路径加载配…

JS之BOM和POM

JS之BOM和POM 目录 JS之BOM和POM什么是BOM 什么是DOMBOMwindow.open(url,name,specs,replace)window.close()window.alert(message)window.confirm(message)window.prompt(message, defaultText)window.setTimeout(function, milliseconds, arguments)window.setInterval(funct…

自定义神经网络二之模型训练推理

文章目录 前言模型概念模型是什么&#xff1f;模型参数有哪些神经网络参数案例 为什么要生成模型模型的大小什么是大模型 模型的训练和推理模型训练训练概念训练过程训练过程中的一些概念 模型推理推理概念推理过程 总结 前言 自定义神经网络一之Tensor和神经网络 通过上一篇…

Java中PDF文件传输有哪些方法?

专栏集锦&#xff0c;大佬们可以收藏以备不时之需&#xff1a; Spring Cloud 专栏&#xff1a;http://t.csdnimg.cn/WDmJ9 Python 专栏&#xff1a;http://t.csdnimg.cn/hMwPR Redis 专栏&#xff1a;http://t.csdnimg.cn/Qq0Xc TensorFlow 专栏&#xff1a;http://t.csdni…
最新文章