3n+1问题(南阳oj)

3n+1问题

时间限制:1000 ms  |  内存限制:65535 KB

难度:0

描述

对于任意大于一的自然数n,若n为奇数,则将n变为3n+1,否则变为n的一半,经过若干次这样的变换,一定会使n变为1.求输出变换的次数,注 要求次数要对3取余;例如3->10->5->16->8->4->2->1 变换了7次,对3取余的1; n<=109

输入
测试数据有多组
输出
每次输出占一行
样例输入
3
2
样例输出
1
1
来源
入门经典
上传者

TC_徐强

<a target=_blank href="http://acm.nyist.net/JudgeOnline/profile.php?userid=TC_%E5%BE%90%E5%BC%BA" style="text-decoration: none; color: rgb(55, 119, 188);">#include<stdio.h>
#include<string.h>
int main()
{
	int n,sum;
	while(scanf("%d",&n)!=EOF)
	{
		sum=0;
		while(n!=1)
		{
			if(n%2==1)
			n=3*n+1;
			else
			n/=2;
			sum++;
		}
		printf("%d\n",sum%3);
	}
	return 0;
}</a>
时间: 2024-10-20 02:37:01

3n+1问题(南阳oj)的相关文章

【南阳OJ分类之语言入门】80题题目+AC代码汇总

声明: 题目部分皆为南阳OJ题目. 代码部分包含AC代码(可能不止一个)和最优代码,大部分都是本人写的,并且大部分为c代码和少部分c++代码and极少java代码,但基本都是c语言知识点,没有太多差别,可能代码有的写的比较丑,毕竟知识有限. 语言入门部分题基本都较为简单,是学习编程入门的很好练习,也是ACM的第一步,入门的最佳方法,望认真对待. 本文由csdn-jtahstu原创,转载请注明出处,欢迎志同道合的朋友一起交流学习.本人QQ:1373758426和csdn博客地址. now begi

【南阳OJ分类之大数问题】题目+AC代码汇总

声明:题目部分皆为南阳OJ题目,代码部分包含AC代码(可能不止一个)和标程. 由于大数问题用c/c++写比较麻烦,而Java的大数类又很好用,所以基本为java代码.实际上竞赛很少会考大数问题,因为竞赛是比的算法,而不是语言特性,不过很多都是大数据,数据上千万级别的,所以算法又很关键,显然那和这篇博客也没啥关系. 题目不是太难,大家和本人就权当学习或复习下Java吧O(∩_∩)O~. 该分类南阳oj地址:http://acm.nyist.edu.cn/JudgeOnline/problemset

The 3n + 1 problem(南阳oj271)(打表法)

The 3n + 1 problem 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描述 Problems in Computer Science are often classified as belonging to a certain class of problems (e.g., NP, Unsolvable, Recursive). In this problem you will be analyzing a property of an algorith

南阳OJ 61 传纸条(一)

传纸条(一) 时间限制:2000 ms  |  内存限制:65535 KB 难度:5 描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是,他们可以通过传纸条来进行交流.纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标(1,1),小轩坐在矩阵的右下角,坐标(m,n).从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者

hdoj Pipe&amp;&amp;南阳oj管道问题&amp;&amp;poj1039(计算几何问题...枚举)

Pipe Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 240    Accepted Submission(s): 99 Problem Description The GX Light Pipeline Company started to prepare bent pipes for the new transgalactic l

南阳 oj 重建二叉树 题目756

 #include <stdio.h> #include <malloc.h> #include <string.h> //二叉链表 typedef struct node{ char data;//节点数据元素 struct node *lchild;//指向左孩子 struct node *rchild;//指向右孩子 }BiNode,*BTree; //利用后序和中序建立二叉树 void GetPreOrder(char *last,char *mid,BTr

拦截导弹(南阳oj)(dp最长下降子序列)

拦截导弹 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 某国为了防御敌国的导弹袭击,发展中一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于等于前一发的高度.某天,雷达捕捉到敌国导弹来袭.由于该系统还在试用阶段,所以只用一套系统,因此有可能不能拦截所有的导弹. 输入 第一行输入测试数据组数N(1<=N<=10) 接下来一行输入这组测试数据共有多少个导弹m(1<=m<=20) 接下来行输

南阳OJ 16 矩形嵌套

描述 有n个矩形,每个矩形可以用a,b来描述,表示长和宽.矩形X(a,b)可以嵌套在矩形Y(c,d)中当且仅当a<c,b<d或者b<c,a<d(相当于旋转X90度).例如(1,5)可以嵌套在(6,2)内,但不能嵌套在(3,4)中.你的任务是选出尽可能多的矩形排成一行,使得除最后一个外,每一个矩形都可以嵌套在下一个矩形内. 输入 第一行是一个正正数N(0<N<10),表示测试数据组数, 每组测试数据的第一行是一个正正数n,表示该组测试数据中含有矩形的个数(n<=10

南阳 oj 郁闷的c小加(三) 题目409

/* 表达式树思路 (a+b)*(c*(d+e); 对该树进行后序遍历得到后缀表达式 ab+cde+**; 这里实现的是如何根据一个后缀表达式,构造出其相应的表达式树. 算法思想:其实很简单,主要就是栈的使用.算法时间复杂度是O(n),n是后缀表达式长度. 从前向后依次扫描后缀表达式,如果是操作数就建立一个单节点树,并把其指针压入栈.如果是操作符,则 建立一个以该操作符为根的树,然后从栈中依次弹出两个指针(这2个指针分别指向2个树),作为该树的 左右子树.然后把指向这棵树的指针压入栈.直到扫描完