猜数字:1行c#和qbasic学习算法

几个月前,阅读了一个外国论坛并看到了竞争:创建一个猜测数字程序,简而言之,我通过创建2种语言的1行猜数字算法超越了外国人。


1 IF Russia = 0 THEN Russia = 2222: RANDOMIZE TIMER: num = INT(RND * 100) + 1: GOTO 1 ELSE IF Russia <> 0 THEN INPUT n: IF n < num THEN PRINT «MORE»: GOTO 1 ELSE IF n > num THEN PRINT «less»: GOTO 1 ELSE IF n = num THEN PRINT «da»: END ELSE GOTO 1 'DANILIN Russia 9-9-2019 guessnum.bas

图片
using System; using System.Text;namespace GURU { class Program { static void Main(string[] args) { Random rand = new Random(); int Russia = 0; int n = 0; int num = 0; dav: if(Russia == 0) {Russia = 2222; num = rand.Next(100)+1; goto dav; }else if (Russia != 0) {Console.Write("? "); n = Convert.ToInt32(Console.ReadLine());} if (n < num) { Console.WriteLine(«MORE»); goto dav;}else if (n > num) { Console.WriteLine(«less»); goto dav;}else if (n == num) {Console.Write(«da»); Console.ReadKey(); }else goto dav;}}}// DANILIN Russia 9-9-2019 guessnum.cs

我放好了原件,希望读者能严格用其他编程语言的1小写形式编写程序。


Milliard.cs 10^9


https://ideone.com/IUi0ga


       //milliard.cs
    using System;
    using System.Text;
    namespace DAV 
    { class Program
     { static void Main(string[] args) 
     { int h2 = 1000000000;//or 500
    int h1 = 0; int t = 0;
    Random rand = new Random();
    int c = rand.Next(h2); //computer
    int h = rand.Next(h2); //human or h2/2; 

    dav: 
    t++;
    Console.WriteLine(); Console.Write(t);
    Console.Write("  "); Console.Write(c);
    Console.Write("  "); Console.Write(h);
    Console.Write("  ");

    if(h < c)
     { Console.Write("MORE");
     int a=h; h=(h+h2)/2; h1=a; goto dav;
     }
    else if(h > c)
     { Console.Write("less");
     int a=h; h=(h1+h)/2; h2=a; goto dav;
     }
    Console.Write("win by "); Console.Write(t);
    Console.Write(" steps"); Console.ReadKey();
    }}}

qbasic bas & c# cs:


1-

:
:

: 1- qbasic






:

1 18122453 320244676 less
2 18122453 160122338 less
3 18122453 80061169 less
4 18122453 40030584 less
5 18122453 20015292 less
6 18122453 10007646 MORE
7 18122453 15011469 MORE
8 18122453 17513380 MORE
9 18122453 18764336 less
10 18122453 18138858 less
11 18122453 17826119 MORE
12 18122453 17982488 MORE
13 18122453 18060673 MORE
14 18122453 18099765 MORE
15 18122453 18119311 MORE
16 18122453 18129084 less
17 18122453 18124197 less
18 18122453 18121754 MORE
19 18122453 18122975 less
20 18122453 18122364 MORE
21 18122453 18122669 less
22 18122453 18122516 less
23 18122453 18122440 MORE
24 18122453 18122478 less
25 18122453 18122459 less
26 18122453 18122449 MORE


27 18122453 18122454少
28 18122453 18122451更多
29 18122453 18122452更多
30 18122453 18122453赢得30步


我们在Excel Excel中检查步骤数:


=对数(10 ^ 9; 2)
= 29.89
= 30


Q.E.D. 诺贝尔奖将无法获得。




主要结果:qbasic程序可以翻译成C#


http://rosettacode.org/wiki/Guess_the_number


All Articles