有关int范围的例题(算法竞赛入门经典)

无惧风云 无惧风云     2022-09-01     391

关键词:

对于任意大于1的自然数n,若n为奇数,则将n变为3n1,否则变为n的一半。
经过若干次这样的变换,一定会使n变为1。 例如,3→10→5→16→8→4→2→1
输入n,输出变换的次数。 n≤109
样例输入:
3
例输出:
7

 1 #include<iostream>
 2 #include<iomanip>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     int n;
 9     cin >> n;
10     int count = 0;
11     while (n != 1)
12     {
13         if (n % 2 == 0)
14         {
15             n = n / 2;
16             
17         }
18         else
19         {
20             n = 3 * n + 1;
21             
22         }
23         count++;
24     }
25     cout << count << endl;
26     system("pause");
27     return 0;
28 }

对于样例可以正确输出结果,但是当输入987654321时,却不能输出正确结果,为什么呢?int的大小应该是-2147483648-2147483647,已经超出int的范围,将n的类型定义为long long,就可以直接输出180.

 1 #include<iostream>
 2 #include<iomanip>
 3 #include<cmath>
 4 using namespace std;
 5 
 6 int main()
 7 {
 8     long long  n;
 9     cin >> n;
10     int count = 0;
11     while (n != 1)
12     {
13         if (n % 2 == 0)
14         {
15             n = n / 2;
16             
17         }
18         else
19         {
20             n = 3 * n + 1;
21             
22         }
23         count++;
24     }
25     cout << count << endl;
26     system("pause");
27     return 0;
28 }

 

《算法竞赛入门经典》例题5.4.1(代码片段)

题目:现代数学的著名证明之一是GeorgCantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,... 查看详情

算法竞赛入门经典训练指南pdf高清版免费下载

...书中还给出了所有重要的经典算法的完整程序,以及重要例题的核心代码,既适合选手自学,也方便教练组织学习和训练。作者简介刘汝佳,1982年12月生,高中毕业于重庆市外国语学校。200 查看详情

《算法竞赛入门经典》3.3最长回文子串

1//例题3-42/*3*输入一个字符串,求出其中最长的回文子串。子串的含义是:在原串中连续出现的字符串片段。4*回文的含义是:正看着和倒看着相同,如abba和yyxyy。在判断时,应该忽略所有标点符号和空格5*且忽略大小写,但输出... 查看详情

《算法竞赛入门经典(第2版)》pdf下载在线阅读,求百度网盘云资源

...盖了算法竞赛入门和提高所需的主要知识点,并含有大量例题和习题。书中的代码规范、简洁、易懂,不仅能帮助读者理解算法原理,还能教会读者很多实用的编程技巧;书中包含的各种开发、测试和调试技巧也是传统的语言、... 查看详情

算法入门竞赛经典7.2枚举排列

7.2.1 生成1~n的排列#include<stdio.h>intnum[20],n;voidPrint(intn,int*a,intcur){inti,j,flag;if(cur==n+1)//递归边界{for(i=1;i<cur;i++)printf("%d",a[i]);printf(" ");}else{for(i=1;i<=n;i++){flag=1 查看详情

算法竞赛入门经典(刘汝佳)课后习题前三章答案

本文转载:第一章习题1-1#include <stdio.h>int main(){int a,b,c;double d;scanf("%d%d%d",&a,&b,&c);d=(double)(a+b+c);printf("%.3lf ",d/3.0);return 0;}习题1-2#include  查看详情

算法竞赛入门经典数组实现树的层序遍历的一个小错误(代码片段)

p154紫书原文:纠正一下这里的newnode()函数中,have_value[root]=false应该是have_value[u]=false附上代码,不知道原题的可以上网搜一下例题6_7Uva122树的层序遍历数组(静态链表)实现:#include<cstdio>#include<cstring>#includ 查看详情

《算法竞赛入门经典(第二版)》pdf

...下载内容简介  · · · · · ·《算法竞赛入门经典(第2版)》是一本算法竞赛的入门与提高教材,把C/C++语言、算法和解题有机地结合在一起,淡化理论,注重学习方法和实践技巧。全书内容分为12章,... 查看详情

笔记算法竞赛入门经典

contents基础题目选解WERTYU、数据结构基础暴力求解法高效算法设计动态规划初步数学概念与方法图论模型与算法 1、WERTYU刚开始的思路是output[‘S‘]=‘A‘。。。书上的常量表应该会比较通用一点。。而不仅仅适于有序常量。i... 查看详情

算法竞赛入门经典_4.3_递归

...归头,二是递归体。我们使用gcc调试工具H:编程书籍学习算法竞赛入门经典2代码算法入门经典第四章>bf‘b‘不是内部或外部命令,也不是可运行的程 查看详情

《算法竞赛入门经典》5.12tex括号

1/*2*在TeX中,左双引号是``,右双引号是‘‘。输入一篇包含双引号的文章,你的任务是把它转换成TeX的格式。3*样例输入:"Tobeornottobe,"quoththeBard,"that4*isthequestion".5*样例输出:``Tobeornottobe,‘‘quoththeBard,``that6*isthequestion.7*/8#include&... 查看详情

算法竞赛入门经典刘汝佳

        点击图片或此处下载  查看详情

算法竞赛入门经典——训练指南

1.UVa11300我的代码:#include<iostream>#include<cstdio>#include<algorithm>usingnamespacestd;longlongC[1000010],M,a;intmain(){intn;while(~scanf("%d",&n)){C[0]=0;for(inti=1;i<=n;i++){ 查看详情

算法竞赛入门经典第2版第1章(代码片段)

...步了解变量的含义  掌握变量交换的三变量法  理解算法竞赛中的程序三部曲:输入、计算、输出  记住算法竞赛的目标及其对程序的要求        &n 查看详情

《算法竞赛入门经典》小收获

1.windows下的命令                              6.15 cmd 打开命令窗口dir 文件列表cdmd d 改变创建删除目录cd 返回根目录more ype 显示文件内容fc 比较两个文件内容del ... 查看详情

算法竞赛入门经典——读书笔记day1

...类型应一一对应,且每个变量前需要加&符号。1-4:在算法竞赛中,输入前不要打印提示信息。输出完毕后应立即终止程序,不要等待用户按键,因为输入输出过程都是自动的,没有人工干预。1-5:在算法竞赛中不要使用头文... 查看详情

dfs与dp算法之关系与经典入门例题(代码片段)

目录声明dfs与dp的关系经典例题-数字三角形-POJ1163题目dfs思路解题思路具体代码dp思路解题思路具体代码声明本文不介绍dfs、dp算法的基础思路,有想了解的可以自己找资源学习。本文适合于刚刚接触dfs和dp算法的人,发现两种算... 查看详情

算法入门经典-第五章例题5-7丑数

#include<iostream>#include<vector>#include<queue>#include<set>usingnamespacestd;typedeflonglongll;constintcoeff={2,3,5};intmain(){//一些常见的优先队列,STL提供了更为简单的定义方法//对于任意丑数x则2x,3x,5x也 查看详情