• 随机数


    1. 排序--明明的随机数

    1.1 描述

    明明想在学校中请一些同学做一项问卷调查。为了实验的客观性,他先用计算机生成了n个1~1000之间的随机整数(n<=100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

    1.1.1 输入描述

    第一行为1个正整数,表示所生成的随机数的个数n。第二行有n个用空格隔开的正整数,为所产生的随机数。

    1.1.2 输出描述

    第一行为1个正整m,表示不相同的随机数的个数。第二行为m个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

    1.1.3 输入样例

    10
    20 40 32 67 40 20 89 300 400 15
    

    1.1.4输出样例

    8
    15 20 32 40 67 89 300 400
    

    1.2 代码

    1.2.1 go

        package main
    import (
        "fmt"
        "strings"
        "strconv"
        "bufio"
        "os"
    )
    
    func main() {
        // please write your code here
        var numOfRandom int
        var strOfRandom string
        fmt.Scanln(&numOfRandom)
        //fmt.Scanln(&strOfRandom)
        inputReader := bufio.NewReader(os.Stdin)
        strOfRandom, _ = inputReader.ReadString('
    ')
        strOfRandom=strings.TrimSpace(strOfRandom)
        //fmt.Println(strOfRandom)
        strArrofRandom:=strings.Split(strOfRandom," ")
        if len(strArrofRandom)!=numOfRandom{
            //panic("123")
        }
        // fmt.Println(strArrofRandom)
        intArrofRandom:=make([]int,0)
        for _,v:=range strArrofRandom{
            if v==""{
                continue
            }
            //strings.TrimS(v)
            if val,err:=strconv.Atoi(v);err==nil{
                isExist:=false
                for _,vv:=range intArrofRandom{
                    if val==vv{
                        isExist=true
                    }
                }
                if !isExist{
                    intArrofRandom=append(intArrofRandom,val)
                }
            }
        }
        
        for i:=0;i<len(intArrofRandom);i++{
            for j:=i+1;j<len(intArrofRandom);j++{
                if intArrofRandom[j]<intArrofRandom[i]{
                    intArrofRandom[i],intArrofRandom[j]=intArrofRandom[j],intArrofRandom[i]
                }
            }
        }
        fmt.Println(len(intArrofRandom))
        for i,v:=range intArrofRandom{
            if i==len(intArrofRandom)-1{
                fmt.Print(v)
                break
            }
            fmt.Print(v," ")
        }
         //fmt.Println(strings.Join(intArrofRandom," "))
        
    }
    

    1.2.1 java

        import java.util.*;
    public class RandomNumbers {
    
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            //System.out.println("answer");
             Scanner scan = new Scanner(System.in);
                String line;
                int numOfRandom=-1;
                while (scan.hasNextLine()) {
                    line = scan.nextLine().trim();
                    // please write your code here
                    if(numOfRandom==-1){
                        numOfRandom=Integer.parseInt(line);
                    }else{
                        String[] arraryOfRandom=line.split("\s+");
                        List<String> listString=new LinkedList<String>();
                        for(String s:arraryOfRandom){
                            if(!listString.contains(s)){
                                listString.add(s);
                            }
                        }
                        String[] newarrofRandom=listString.toArray(new String[listString.size()]);
                        int[] newArrOfInt=new int[newarrofRandom.length];
                        System.out.println(newArrOfInt.length);
                        for(int i=0;i<newarrofRandom.length;i++){
                            newArrOfInt[i]=Integer.parseInt(newarrofRandom[i]);
                        }
                        Arrays.sort(newArrOfInt);
                        for(int s:newArrOfInt){
                            System.out.printf("%d ",s);
                        }
                        break;
                    }
                    // System.out.println("answer");
                }
                scan.close();
           
        }
    
    }
    
    

    1.2.1 python

    import sys
    
    if __name__=="__main__":
        numOfRandom=None
        for line in sys.stdin:
            # print(line) # please replace your code here
            newLine=line.strip()
            if numOfRandom==None:
                numOfRandom=int(newLine)
            else:
                numList=newLine.split(" ")
                numList=list(set(numList))
                if "" in numList:
                    numList.remove("")
                newNumList=[]
                for v in numList:
                    newNumList.append(int(v.strip()))
                newNumList.sort()
                out=" ".join(str(i) for i in newNumList)
                print(len(newNumList))
                print(out)
                #print("44 66")
                break     
    

    1.2 总结

    不同的语言,实现思路是不一样的;

  • 相关阅读:
    WCF 4.0中的动态发现服务WSDiscovery
    Windows Server 2008 R2 Server Core
    Open Source Web Design
    Windows Identity Foundation(WIF)正式发布
    是开始学习IronPython 的时候了
    IronPython 承载和消费WCF服务
    微博客程序 Yonkly
    如何启用匿名访问SQL Server Reporting Service 2008
    ASP.NET MVC 2 RC 发布
    SharePoint 2010 VHD下载
  • 原文地址:https://www.cnblogs.com/meiguhuaxian/p/14189530.html
Copyright © 2020-2023  润新知