zoukankan      html  css  js  c++  java
  • 继续3n+1猜想

    1  题目要求

          https://www.patest.cn/contests/pat-b-practise/1005

    2   源代码

    #include<stdio.h>
    int main(void){
        int num[101];
        int k,n,i,length;
         //初始化数组,将数组每个数都设置为-1 
         for(i=0;i<101;i++){
             num[i]=-1;
         }     
          scanf("%d",&k);//输入个数 
          
        for(i=0;i<k;i++){
            scanf("%d",&n);
            num[n]=0;//输入5,就把数组下表为5的数子设置为0,说明该数组下标被输入过 
        }
        
        /*************************************/
        
        for(i=0;i<101;i++){
            if(num[i]!=0){
                continue; //如果数组的值不为0,就不执行下面的语句,进入下一次循环。不为0的含义是:说明么牛有输入过 
            }
            n=i;  //把i赋给n
            while(n!=1){
                if(n%2==0){
                    n=n/2;
                    if(n<=100){
                        num[n]=1;
                    }
                }else{
                    n=(3*n+1)/2;
                    if(n<=100){
                        num[n]=1;
                    }
                }    
            } 
        } 
        //剩下的就是个数了 
        for(i=0,length=0;i<101;i++){
            if(num[i]==0){
                length++;
            }
        }
        //倒序输出 
         for(i=100;i>1;i--){
             if(num[i]==0){
                 length--;
             if(length!=0){
                 printf("%d ",i);
             }else{
                 printf("%d",i);
                 break;
             }
         }
         } 
    }

     3   这题其实用java反而思路清晰一些,但是用c的话可以看出底层存储的巧妙思路,这题和多项式的题目其实有点类似,巧妙的利用了数组存储

               1    定义数组,初始化数组。

               2    输出第二行数字,接收到后就将输入的数字的对应的数组下标的数组的值改为0 ,说明被输入过

               3    遍历数组了,如果数组的值不为0,则跳出循环不执行。若为0,则对其进行逻辑判断,并将每一个数子的逻辑判断得到的数组的对应的数组下标的值设置为1

               4   最后,剩下的为0的,就是要的关键数

               

  • 相关阅读:
    既使用maven编译,又使用lib下的Jar包
    Mac idea 快捷键
    spring-boot集成Springfox-Swagger2
    java 反射获取类的静态属性值
    springmvc防止重复提交拦截器
    反射调用 java bean的set和get方法
    JSONObject 自定义过滤配置
    maven自定义脚手架(快速生成项目)
    Jackson序列化实例
    EntityManager的使用
  • 原文地址:https://www.cnblogs.com/sunnybowen/p/8663861.html
Copyright © 2011-2022 走看看