解题思路:我第一眼看到这题还以为很难,在草稿上列一下就发现了特点,以下是我思路:

                        小张空瓶数:                换水次数:

                                        1                            0

                                        2                            1

                                        3                            1

                                        4                            2

                                        5                            2

                                        6                            3

                                        7                            3    

                                        8                            4

                                        9                            4

                                        10                          5

                                        ......                          ....   

        从这里看,很明显换水次数是存在规律变化的,那么我们再想一想让每俩个数都能是同样的换水次数,很有可能是取余或除法,由2~4~6~8~......每个数

之间有着大小为2的间距,3~5~7~9~......同样也是相差2的间距,而它们间对应的换水次数的差别却是1,那么很自然的会想到除以二,那么可以得到一下代码。


注意事项:        别被题目吓到了,很简单的。

参考代码:            



                

#include<stdio.h>

int main()

{

     int n;

     scanf("%d",&n);

     int a[1000];

     int i=0;

    

     while(n!=0)

     {

         a[i++]=n/2;

          scanf("%d",&n);

     } 

     for(n=0;n<i;n++)        //不想浪费n的空间,平常的习惯

     {

          printf("%d\n",a[n]);

     }


点赞(0)
 

0.0分

1 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论