zoukankan      html  css  js  c++  java
  • 【PAT_Basic日记】1005. 继续(3n+1)猜想

    #include <stdio.h>
    #include <stdlib.h>
    
    /**
    逻辑上的清晰和代码上的清晰要合二为一
    (1)首先在逻辑上一定要清晰每一步需要干什么,
    (2)然后在代码上以逻辑的每一步为单位来实现代码
    (3)思维逻辑跟不上时,用调试看看,尽量以电脑编译器的思维去想代码的实现
    */
    
    int my_process(int n)
    {
        if(n%2 == 0)
        {
            n=n/2;
        }
        else
        {
            n=(3*n+1)/2;
        }
        return n;
    }
    
    
    
    int main()
    {
        int k;
        int a[100]={0};
        int *p=a;
        int i,j,t;
        int n;
        //input
        scanf("%d",&k);
        for(i=0;i<k;i++)
        {
            scanf("%d",&a[i]);
        }
    
        //process
        for(i=0;i<k;i++)
        {
            n=a[i];
            while(n != 1)
            {
    
                n=my_process(n);
                for(j=0;j<k;j++)
                {
                    if(p[j]==n)
                    {
                        p[j]=1;
                        break;  //break是因为测试例子中没有相同数字
                    }
                }
            }
        }
    
    
        //sort
        for(i=0;i<k;i++)
            for(j=0;j<k-i;j++)
            {
                if(a[j+1]>a[j])
                {
                    t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                }
            }
    
        //output
        printf("%d",a[0]);
        for(i=1;i<k;i++)
        {
            if(a[i]!=1)printf(" %d",a[i]);
        }
        printf("
    ");
    
        return 0;
    }
    

      

  • 相关阅读:
    ReactJs入门
    Studio-Class Diagram
    Visual Studio-Sequence Diagram
    架构、职责、数据一致性
    Microsoft Build 2015
    Net下无敌的ORM
    SpringMVC1
    插件式Web框架
    ASP.NET的CMS
    Android Drawable绘图学习笔记(转)
  • 原文地址:https://www.cnblogs.com/panhao/p/4247924.html
Copyright © 2011-2022 走看看