3n+1问题中的几个小的注意点

3038 3n+1问题

 

 时间限制: 1 s
 空间限制: 32000 KB
 题目等级 : 白银 Silver
题解
题目描述 Description
3n+1问题是一个简单有趣而又没有解决的数学问题。这个问题是由L. Collatz在1937年提出的。克拉兹问题(Collatz problem)也被叫做hailstone问题、3n+1问题、Hasse算法问题、Kakutani算法问题、Thwaites猜想或者Ulam问题。
问题如下:
(1)输入一个正整数n;
(2)如果n=1则结束;
(3)如果n是奇数,则n变为3n+1,否则n变为n/2;
(4)转入第(2)步。
克拉兹问题的特殊之处在于:尽管很容易将这个问题讲清楚,但直到今天仍不能保证这个问题的算法对所有可能的输入都有效——即至今没有人证明对所有的正整数该过程都终止。
输入描述 Input Description

第一行是一个整数T.表示输入数据的组数.

第二行是T个正整数n.

输出描述 Output Description

对于每个正整数n,每行输出一个数s,表示n通过多少步变换会变成1,如果n无法变成1,则输出-1.

样例输入 Sample Input

3

1 2 3

样例输出 Sample Output

0

1

7

#include <bits/stdc++.h>
using namespace std;int f(int n,int ans){if(n == 1) return ans;else if(n%2 == 0) return f(n/2,++ans);else if(n%2 != 0) return f(3*n+1,++ans);
}int main(){int n;cin >> n;for(int i=0;i<n;i++){int m;cin >> m;cout << f(m,1)-1<<endl;}
}

第一:题目中提到的如果循环不终止的话返回-1,实际上不需要,如果函数运行失败(无限循环)函数自动会返回-1

第二:注意在函数中负责计数变量的定义位置ans

转载于:https://www.cnblogs.com/cunyusup/p/7740627.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/368850.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql函数访问oracle,Oracle与MySql函数

Oracle:1. 截取字符串中字符前的字符串(不包括字符)select Substr(P.SCHEDULE_CODE, 1, Instr(P.SCHEDULE_CODE, (, 1)-1) from M_SUB_TASK_SCHEDULE_LOG P;2. 截取字符串中字符前的字符串(包括字符)select Substr(P.SCHEDULE_CODE, 1, Instr(P.SCHEDULE_CODE, (ret, 1)) fr…

html 语义化标签拾遗

1、del和ins标签 兼容性&#xff1a;浏览器全部支持 del&#xff1a;定义文档中已被删除的文本。 ins&#xff1a;定义已经被插入文档中的文本。 <!DOCTYPE html><html lang"zh"><head><meta charset"UTF-8" /><title>ht…

Spring MVC表单教程

本教程将展示如何在Spring MVC中处理表单提交。 我们将定义一个控制器来处理页面加载和表单提交。 您可以在GitHub上获取代码。 先决条件&#xff1a; 您应该有一个运行中的Spring MVC应用程序。 如果尚未设置正常的Spring MVC应用程序&#xff0c;请按照本教程进行操作 。 对…

一个跳转提示页面---JS

//一个跳转提示页面 <script type"text/javascript"> var s5; function go(){ document.getElementById("chan").innerHTMLs; ss-1; if (s0){ window.location.href"http://www.imooc.com/"; …

理解Flexbox弹性盒子

http://www.w3cplus.com/css3/understanding-flexbox-everything-you-need-to-know.html参考文档 1&#xff1a;要开始使用Flexbox&#xff0c;必须先让父元素变成一个Flex容器。 你可以在父元素中显式的设置 display:flex或者 display:inline-flex。就这么的简单&#xff0c…

php安装dat,PHP Parsing a .dat file

问题I have a .dat file that is essentially ; delimited file and Im trying to convert it to a tab delimited .txt. The problem that I am not sure about is that each row of the new file will be a combination of 3 of the original files rows, each original row …

[转]Bing Maps Tile System 学习

原文链接&#xff1a;Bing Maps Tile System 学习 转载于:https://www.cnblogs.com/rainbow70626/p/8992322.html

Spring休眠3

1.概述 本文将重点介绍通过Spring设置Hibernate 3 –我们将研究如何同时使用XML和Java配置通过Hibernate 3和MySQL设置Spring 3。 2. Hibernate 3的Java Spring配置 使用Spring和Java配置来设置Hibernate 3很简单&#xff1a; import java.util.Properties; import javax.sql…

我们十组的cantool装置的使用

十组的cantool装置的使用 下图是连接好的示意图&#xff0c;灯亮。 如果在串口关闭的时候输入C&#xff0c;cantool装置就会报错&#xff0c;因为串口是关闭的。正如需求文档里写的&#xff0c;当串口关闭&#xff0c;输入C要有返回\BEL的,关闭串口的前提是串口打开。 正确发送…

php查询功能突然没有用,php – 为什么搜索查询没有在PHRETS中显示任何结果?

我正在使用这个PHP脚本从一个简单的搜索查询获得结果here我已经下载了属性here的元数据excel文件$rets_login_url "http://sef.rets.interealty.com/Login.asmx/Login";$rets_username "xxxxxxxx";$rets_password "xxxxxxxx";$rets_user_agen…

es6入门

现在我们来学习一下es6,它现在是一门比较火的语言但是并不是所有的浏览器都兼容E6说的全部特性&#xff0c; 但是我们依旧应该学习一下ES6的语法。 因为兼容性我们得学习一下Babel,它是一个广泛使用的ES6转换器&#xff0c;可以将ES6代码转化为ES5代码&#xff0c;从而在现有环…

2018-05-05(在小程序中使用图标)

项目中常常需要使用到字体图标&#xff0c;微信小程序中使用字体图标与在平常的web前端中类似但是又有区别。下面以使用阿里图标为例子讲解如何在微信小程序中使用字体图标。 第一步&#xff1a;下载需要的字体图标 进入阿里图标官网http://iconfont.cn/搜索自己想要的图标&…

Spring休眠4

1.概述 本文将重点介绍如何使用Spring设置Hibernate 4 –我们将研究如何使用Java和XML配置来使用Hibernate 4配置Spring 3。 当然&#xff0c;该过程的某些部分对于Hibernate 3文章是通用的 。 2. Maven 要将Spring Persistence依赖项添加到项目pom.xml中 &#xff0c;请参阅专…

php 水平测试,测试您的 PHP 水平的题目_PHP教程

在 Unix Review 上看到这个很有意思的测试&#xff0c;和大家共享。UnixReview.comMay 2007Test Your Knowledge of PHPby Emmett DulaneyFrom: http://www.unixreview.com/documents/s10130/ur0705d/Increasingly, PHP seems to be the tool/language that is used to make We…

Django的模板系统

一、模板的组成 html代码和逻辑控制代码 二、逻辑控制代码的形式 1、变量&#xff08;使用双大括号引用变量&#xff09; a、template和context 语法 : {{ var_name }} 模板系统不仅可以传字符串&#xff0c;它可以传递任意对象&#xff0c;对于向列表、字典、元组等对象&…

Java SE 7 Update 25 –发行说明进行了解释。

昨天是CPU日。 Oracle通过6月的Java重要补丁更新发布了Java SE更新25 。 在4月的最后一次重大更新之后&#xff0c;这是与所有其他Oracle产品一起不符合Oracle关键补丁更新计划的最后一个更新。 从2013年10月开始 &#xff0c;Java安全修补程序将遵循四个年度安全发布周期。 但…

springmvc mybatis 做分页sql 语句

<?xml version"1.0" encoding"UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"ssmy.dao.UserDao"> <res…

LeetCode Subarray Product Less Than K

原题链接在这里&#xff1a;https://leetcode.com/problems/subarray-product-less-than-k/description/ 题目&#xff1a; Your are given an array of positive integers nums. Count and print the number of (contiguous) subarrays where the product of all the elements…

Ansible: hosts文件拆分为inventory和定义inventory全局变量

前言 随着管理机器的增多&#xff0c;我们在使用Ansible的时候时常会遇到hosts文件过于冗长的问题&#xff0c;极其不便于管理&#xff0c;而将hosts文件拆分为inventory就可解决该问题&#xff1b;另外&#xff0c;hosts中的每个主机条目需要指定用户名和私钥或密码&#xff0…

gulp实用配置(1)——demo

在React和Vue推进下&#xff0c;现在很多人都在使用webpack作为自动化构建工具&#xff0c;但其实在很多时候我们并不是一定需要用到它&#xff0c;gulp这样的轻量级构建工具就足够了。 最近一段时间不是太忙&#xff0c;所以就写了三份配置&#xff0c;用在不同的情况下。 这…