输入一个正整数,经过几次运算直到结果得到1为止

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            double integer=0,result=0;     //integer:正整数;
            Console.WriteLine("请输入一个正整数");
            integer = Convert.ToDouble(Console.ReadLine());
            do
            {
                Console.Write("第{0}次{1}------->", result, integer);
                if (integer % 2 == 0) integer /= 2;
                else integer=integer*3+1;

                result++;
                Console.WriteLine("{0}", integer);

            } while (integer!=1);
            Console.WriteLine("经过{0}次这样的运算才得到数1", result);
            Console.Read();

        }
    }
}

时间: 2024-10-13 01:11:58

输入一个正整数,经过几次运算直到结果得到1为止的相关文章

ACM:每行输入一个正整数n,找出与它对应的比它大的最小的且它们对应的二进制中1的个数一样多的正整数.

#include<stdio.h> //每行输入一个正整数i,找出与他对应的比它大的最小的正整数且他们的二进制中1的个数一样多. /* 样例输入: 样例输出: 1 2 2 4 3 5 4 8 78 83 0 */ //78的二进制位1001110,有4个1:83比78大且83的二进制位1001011也是4个1. int main() { int count1,count2;//count1统计原数据对应的二进制中1的个数,count2... int a[100];//存输入的数字 int i=

[华为机试]输入一个正整数,输出2000年1月1日经过该整数天后的日期.

//输入一个正整数,输出2000年1月1日经过该整数天后的日期.已测试,输入值可以为0~1095727 //如,100天后,日期为2000 4 10 #include<stdio.h> #define MAX_YEAR 5000//年数可以从2000一直到4999年. //函数功能:求解第year年共有多少天 int day_in_year(int year) { if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字的最小的一个

/** * @Version 1.0.0 * 输入一个正整数数组,把数组里所有数字拼接起来排成一个数, * 打印能拼接出的所有数字的最小的一个.例如输入{3,32,321,4},则打印最小的数字是 * 321323 * * 其实就是一次排序,只是比较大小的方式与数值比较有所不同 * 这里采用冒泡排序的方式 */public class Pro33 { @MyAnswer public static void f(int array[]){ for(int i=0;i<array.length-1

提示用户输入一个正整数n,计算1+2+3+…+n的和

/* */ #include <stdio.h> int main() { // 1.提示输入 printf("请输入一个正整数:\n"); // 2.接收输入 // 定义变量保存用户输入的整数 int n; scanf("%d", &n); if (n<=0) { printf("非法输入\n"); return 0; } // 3.计算 // (1 + n) * n / 2; // 定义变量保存和 int sum =

提示用户输入一个正整数n,如果n=5,就输出下列图形,其他n值以此类推

/* ***** **** *** ** * */ #include <stdio.h> int main() { // 1.定义一个变量存储用户输入的值 int n = 0; // 一定要初始化 // 2.判断n值合不合理 while (n <= 0) { // 2.1 提示用户输入正整数 printf("请输入一个正整数:\n"); // 2.2 接收输入的数据 scanf("%d", &n); } // 3.输出图形 for (int

12.输入一个正整数,输出它所有的因子

#include<iostream>using namespace std;void YinZi(int n); int main(){ int n; cout<<"please input an number : "<<endl; cin>>n; YinZi(n); return 0;} void YinZi(int n){ for(int i=1;i<=n;i++) { if(n%i==0) cout<<i<&

任意输入一个正整数,求出其各位数字之和

//任意输入一个正整数,求出其各位数字之和 #include <stdio.h>void main(){    int num,s=0;     printf("请任意输入一个正整数:\n");     scanf("%d",&num);     while(num!=0)     {         s=num%10+s;//没有赋值的操作,在编写程序时没有意识到这一点         num=num/10;     } printf(&quo

从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。 (三角形腰上的数为1,其他位置的数为其上 一行相邻两个数之和。)

package com.homework.zw;//此题没有太大难度,不再写注释import java.util.Scanner;public class work4 { public static void main(String[] args)  {   Scanner sc = new Scanner(System.in);         System.out.println("请输入一个正整数n");         int n = sc.nextInt();       

输入一个正整数,求它各位数的数字之和

class Test{ public static void main(String[] args){ int iSum = 0; Scanner scan = new Scanner(System.in); System.out.print("请输入一个正整数:"); int iNum = scan.nextInt(); int iC = iNum; while(iNum % 10 == 0) iNum = iNum / 10; while(iNum % 10 > 0){ in