掉入陷阱的数字

简介: 掉入陷阱的数字

7-82 掉入陷阱的数字 (15 分)


对任意一个自然数N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1;然后对N1重复这种操作,可以产生新自然数N2;……多次重复这种操作,运算结果最终会得到一个固定不变的数Nk,就像掉入一个数字“陷阱”。


本题要求对输入的自然数,给出其掉入“陷阱”的过程。


输入格式:


在一行内给出一个自然数N0(N0<30000)。


输出格式:


对于输入的N0,逐行输出其掉入陷阱的步骤。第i行描述N掉入陷阱的第i步,格式为: i:Ni (i≥1)。当某一步得到的自然数结果Nk(k≥1)与上一步Nk−1相同时,停止输出。


输入样例:


5


结尾无空行


输出样例:


1:16
2:22
3:13
4:13


结尾无空行


#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    for(int i=1;;i++){
        int sum=0,x;
        x=n;
        while(n>0){
            sum+=n%10;
            n/=10;
        }
        n=sum*3+1;
        cout<<i<<":"<<n<<endl;
        if(x==n) break;
    }
    return 0;
}
目录
相关文章
|
4月前
|
C语言
c语言编程练习题:7-31 掉入陷阱的数字
c语言编程练习题:7-31 掉入陷阱的数字
45 1
|
1月前
|
Java 开发者
在Java编程的广阔天地中,if-else与switch语句犹如两位老练的舵手,引领着代码的流向,决定着程序的走向。
在Java编程中,if-else与switch语句是条件判断的两大利器。本文通过丰富的示例,深入浅出地解析两者的特点与应用场景。if-else适用于逻辑复杂的判断,而switch则在处理固定选项或多分支选择时更为高效。从逻辑复杂度、可读性到性能考量,我们将帮助你掌握何时选用哪种语句,让你在编程时更加得心应手。无论面对何种挑战,都能找到最适合的解决方案。
27 1
|
2月前
|
算法 数据库连接 数据库
魔鬼数字的起源与在编程中的警示作用
魔鬼数字的起源与在编程中的警示作用
|
4月前
|
C语言
|
存储 编译器 Linux
C生万物 | 窥探数组设计的种种陷阱
数组在设计的时候为何会出现那么多纰漏?数组越界是如何导致的?,我们来一探究竟🔍
64 0
C生万物 | 窥探数组设计的种种陷阱
Zp
|
XML 算法 IDE
提升:抛弃七条不良编码习惯
提升:抛弃七条不良编码习惯
Zp
110 0
|
人工智能 运维 监控
|
C语言
C语言解决 猜凶手问题 两句话矛盾必有一真一假类问题
C语言解决 猜凶手问题 两句话矛盾必有一真一假类问题
100 0
C语言解决 猜凶手问题 两句话矛盾必有一真一假类问题
★色盲悖论正解!
假设:有一个人,他有一种奇怪的色盲症。他看到的两种颜色和别人不一样,他把蓝色看成绿色,把绿色看成蓝色。   但是他自己并不知道他跟别人不一样,别人看到的天空是蓝色的,他看到的是绿色的,但是他和别人的叫法都一样,都是“蓝色”;小草是绿色的,他看到的却是蓝色的,但是他把蓝色叫做“绿色”。
2498 0
|
存储 算法 Java
面试官疯了吗,问我为什么浮点数不精确?
很多人都知道,Java 中的浮点数并不精确,需要用 BigDecimal进行精确计算,但是,很少有人知道为什么浮点数不精确呢?不精确为什么还要用呢?本文就来展开分析一波;
258 0