| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1173 人关注过本帖
标题:大家出的题太难了,我说一个简单的供初学者联系 数7
只看楼主 加入收藏
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:23 
大家出的题太难了,我说一个简单的供初学者联系 数7
数7大家应该都玩过, 一桌人从1开始数,遇到以7结尾或者7的倍数不能说出来,喊"过".如果把数字喊出来了,就出局了.下面的人接着数.

我的题目是共20个人按1-20编号,大家开始数7,  如果每一个人都把以7结尾或者7的倍数的数喊出来了, 请问最后一个人的编号是多少?
2012-01-17 17:20
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
用个循环链表模拟一下就行了   类似约瑟夫环问题

                                         
===========深入<----------------->浅出============
2012-01-17 17:41
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
什麼時候會出現死循環呢?

授人以渔,不授人以鱼。
2012-01-17 17:48
cuijingchun
Rank: 3Rank: 3
来 自:黑龙江
等 级:论坛游侠
威 望:1
帖 子:108
专家分:186
注 册:2011-9-28
收藏
得分:0 
想起来了,
 循环队列,,,,,
        不知对不对,我对数剧结构还没学玩,

为自己喜欢游戏做一个自动打怪的程序QQ: 7325231    YY4350晚上编程课欢迎大家来听
2012-01-17 20:55
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
啥都不说了 , 上代码:
程序代码:
#include  <stdio.h>

int  main(void)

{
    int  a[21] = { 0 }, i, k = 0, j = 1;

    int m = 0;

    for (i = 1; i <= 20; i++)

        a[i] = i;

    i = 1;

    while (m < 19)

    {       
        if (a[i])       
            
               k++;

                if ((k % 7 == 0) && a[i])
       
                {
                   a[i] = 0;

                   printf("%-3d-->  ", i);

                   m++;

                   k = 0;
                      
                    if (j++ % 6 == 0)

                        printf("\n");
                }
           
                if (i == 20)

                    i = 0;

                    ++i;                          
    }

    printf("\n\nThe last one is ");

    for (i = 0; i <=20; i++)

    {
        if (a[i] != 0)

            printf("number %d\n", i);
    }

    printf("\n");

    return  0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


梅尚程荀
马谭杨奚







                                                       
2012-01-17 21:26
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
把算法改為玩者數任意看看。編程時應該按最一般的情況考慮,不能人家說20個人玩,就真按20個人來硬編碼,那樣叫看問題只看到表面。數學課都學過,特殊數字可能是特例,而用代數思考才有一般性。編程也應該持有這種思維。適應性強的程序,與針對特例設計的程序,差異可能很大的,有些情況,是特例情況下想像不到的。

授人以渔,不授人以鱼。
2012-01-17 21:32
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
呵呵,我也做一下,版主不一样。
论坛的风格就不一样。。。。。

我也跟风想一下。

不用链表算了,
直接用一个 int a[20];
用一个while +for+n 表示到7或7的倍数 加一个 标志的变量flag 用来表示只剩下最后一个人的条件。
跳出循环。。。 输去结果。

貌似只有20的时候 可以行的同。。。。

用心做一件事情就这么简单
2012-01-17 21:38
有容就大
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:东土大唐
等 级:版主
威 望:74
帖 子:9048
专家分:14309
注 册:2011-11-11
收藏
得分:0 
回复 6楼 TonyDeng
老大我啥都不说了。上代码:
程序代码:
#include  <stdio.h>

#define  N 101

int  main(void)

{
    int  a[N] = { 0 }, i, k = 0, j = 1;

    int m = 0, n;

    printf("Please input n:");   

    scanf("%d", &n);             // 千万别输比N - 1大的数哦, 要不然先改N的宏:)

    printf("\n");

    for (i = 1; i <= n; i++)

        a[i] = i;

    i = 1;

    while (m < n - 1)

    {      
        if (a[i])      
           
               k++;

                if ((k % 7 == 0) && a[i])
      
                {
                   a[i] = 0;

                   printf("%-3d-->  ", i);

                   m++;

                   k = 0;
                     
                    if (j++ % 6 == 0)

                        printf("\n");
                }
          
                if (i == n)

                    i = 0;

                    ++i;                         
    }

    printf("\n\nThe last one is ");

    for (i = 0; i <= n; i++)

    {
        if (a[i] != 0)

            printf("number %d\n", i);
    }

    printf("\n");

    return  0;
}

图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 有容就大 于 2012-1-17 21:43 编辑 ]

梅尚程荀
马谭杨奚







                                                       
2012-01-17 21:42
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
收藏
得分:0 
还是用循环链表方便一点。。。
针对任意玩家。。。。。
代码简单点。。
但是不可能出现死循环啊。。

用心做一件事情就这么简单
2012-01-17 21:44
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
我們喝酒的時候就會,哈哈,因為開始時沒人醉,頭腦都清醒著,不會喊出那個數受罰的。

授人以渔,不授人以鱼。
2012-01-17 22:06
快速回复:大家出的题太难了,我说一个简单的供初学者联系 数7
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025082 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved