一道百度之星编程大赛题的随笔联想·(2)

简介:

百度之星,是全球最大的中文搜索引擎,百度公司面向中国高校学生和编程爱好者所举办的高水平的程序设计大赛。他所考试的题目,全部都是算法的题目。

鄙人虽然是一个.net程序员,在工作之余,喜爱算法。 我觉得这个题目有点意思,故而分享给大家,我想到两种方法,提供大家,希望对大家起了一个开阔思路的作用。

下面介绍解法二了。

 解法二,是抓小放大。  由小及大。首先,说一说我分析的思路吧。

 第一步,还是判断i是不小于i/2,以此循环了。

 第二步,是不是判断此范围的值的累加是不是等于相应某个值。

第三步,将其输出

第四步,如果没有就输出none这个值。

下面我们就看相应的源代码了


 1    Console.WriteLine("请输入一个正整数");
 2             int inputNum = Convert.ToInt32(Console.ReadLine());
 3           //  是否连续的值的标识
 4           bool flag = false;
 5              //相应的计数的变量
 6             int i = 1, j = 2, sum = 0;
 7            //从inputNum、2开始计数了
 8             while (i < inputNum / 2)
 9             {
10                 sum = add(i, j);
11                 while (sum != inputNum && i < inputNum / 2 + 1)
12                 {
13                     if (sum > inputNum)
14                         i++;
15                     else
16                         j++;
17                     sum = add(i, j);
18                 }
19                    //打印了相应的循环
20                 for (int k = i; k <= j && j > i; k++)
21                 {
22 
23                     Console.Write(k);
24 
25                     Console.Write(" ");
26                 }
27                 i++;
28                 Console.WriteLine();
29             }
30 
31             if (!flag)
32             {
33                 Console.WriteLine("NONE");
34             }
35             Console.ReadKey();
36          //计算累加的算法 
37        static int add(int m, int n)
38         {
39             int sum = 0;
40             for (int i = m; i <= n; i++)
41             {
42                 sum += i;
43             }
44             return sum;
45         }

这个算法的作用,就是看其通过循环来看其是否相等的方法。

他与第一种的算法,有所不同,第一种方法是从其减 ,看其能否得0,第二种的方法进行了累加的算法,看其是否相等。并且这有两个指针的变量的相互的扫描。

总而言之,这两种算法,各有千秋吧。


目录
相关文章
|
人工智能 BI Windows
2021 年百度之星·程序设计大赛 - 初赛一、二
2021 年百度之星·程序设计大赛 - 初赛一、二
142 0
2021 年百度之星·程序设计大赛 - 初赛一、二
|
Java
2017"百度之星"程序设计大赛 - 复赛1001&&HDU 6144 Arithmetic of Bomb【java大模拟】
Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 129    Accepted Submission(s): 94 Problem Description 众所周知,度度熊非常喜欢数字。
1398 0
|
Java Go
2017"百度之星"程序设计大赛 - 复赛1003&&HDU 6146 Pok&#233;mon GO【数学,递推,dp】
Pokémon GO Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 171    Accepted Submission(s): 104 Problem Description 众所周知,度度熊最近沉迷于 Pokémon GO。
1390 0
|
Java
2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】
Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 311    Accepted Submission(s): 165 Problem Description 众所周知,度度熊非常喜欢数字。
1434 0
|
机器学习/深度学习 人工智能 Java
2017"百度之星"程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】
度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 哗啦啦村袭击了喵哈哈村! 度度熊为了拯救喵哈哈村,带着自己的伙伴去救援喵哈哈村去了!度度熊与伙伴们很快的就过来占据了喵哈哈村的各个军事要地,牢牢的守住了喵哈哈村。
1581 0
|
3月前
|
存储 Kubernetes 容器
百度搜索:蓝易云【Kubernetes使用helm部署NFS Provisioner】
现在,你已经成功使用Helm部署了NFS Provisioner,并且可以在Kubernetes中创建使用NFS存储的PersistentVolumeClaim。
49 10
|
3月前
百度搜索:蓝易云【什么是HTTP长轮询?】
现在,HTTP长轮询逐渐被WebSocket等更高效的实时通信技术所替代,但了解HTTP长轮询仍然有助于理解实时数据推送的基本原理。
86 9