zoukankan      html  css  js  c++  java
  • POJ C程序设计进阶 编程题#2:角谷猜想

    编程题#2:角谷猜想

    来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

    注意: 总时间限制: 1000ms 内存限制: 65536kB

    描述

    所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。

    程序要求输入一个整数,将经过处理得到1的过程输出来。

    输入

    一个正整数

    输出

    从输入整数到1的步骤,每一步为一行,每一部中描述计算过程,假定输入为7,则输出为:

    7*3+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

    最后一行输出"End",如果输入为1,直接输出"End" 

    样例输入

    5

    样例输出

    5*3+1=16

    16/2=8

    8/2=4

    4/2=2

    2/2=1

    End


     1 #include<iostream>
     2 #include<stdio.h>
     3 using namespace std;
     4 
     5 void fun(int a);
     6 int main()
     7 {
     8     int a;
     9     cin >> a;
    10     fun(a);
    11     return 0;
    12 }
    13 
    14 void fun(int a)
    15 {
    16     if (a == 1) {
    17         cout << "End";
    18     }
    19     else if (a % 2 == 1) {
    20         int result = a * 3 + 1;
    21         printf("%d*3+1=%d
    ", a, result);
    22         fun(result);
    23     }
    24     else {
    25         int result = a / 2;
    26         printf("%d/2=%d
    ", a, result);
    27         fun(result);
    28     } 
    29 }
  • 相关阅读:
    Discuz热搜在哪里设置?
    Discuz如何设置帖子隐藏回复可见或部分可见方法
    新版Discuz!应用中心接入教程(转)
    Diszuz管理面版被锁怎么办?
    vs 2019 调试无法查看变量
    Google Docs 的格式刷快捷键
    chrome 的常用快捷键
    Activiti 数据库表结构
    activiti 报 next dbid
    尚硅谷Java基础_Day2
  • 原文地址:https://www.cnblogs.com/dagon/p/4710479.html
Copyright © 2011-2022 走看看