QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 10306|回复: 14
打印 上一主题 下一主题

数学中国2008年美赛B题:sudoku source code

[复制链接]
字体大小: 正常 放大

1253

主题

442

听众

-586

积分

复兴中华数学头子

  • TA的每日心情
    开心
    2011-9-26 17:31
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    自我介绍
    数学中国网站(www.madio.cn)是目前中国最大的数学建模交流社区

    邮箱绑定达人 优秀斑竹奖 发帖功臣 元老勋章 新人进步奖 原创写作奖 最具活力勋章 风雨历程奖

    群组越狱吧

    群组湖南工业大学数学建模同盟会

    群组四川农业大学数学建模协会

    群组重庆交通大学数学建模协会

    群组中国矿业大学数学建模协会

    跳转到指定楼层
    1#
    发表于 2008-2-16 00:54 |只看该作者 |正序浏览
    |招呼Ta 关注Ta |邮箱已经成功绑定
    c++
    /*PROGRAM FOR SOLVING THE SUDOKU USING 'C'*/

    #include<stdio.h>
    #include<conio.h>
    #include<iostream.h>
    #include<stdlib.h>

    int i,j,k,a[10][10],o,x[100],y[100];

    void display();
    int getnum();
    void solve(int [],int [],int);
    int check(int ,int );

    void main()
    {
    clrscr();
    printf("\n\nEnter the elements of SUDOKU in rowwise.\n[ Enter '0' if element is absent. ]");
    for(i=1;i<=9;i++)
    for(j=1;j<=9;j++)
    scanf("%d",&a[j]);
    printf("\n\nEntered SUDOKU\n\n");
    display();
    printf("\nEnter any key for solution....\n");
    getch();
    o=getnum();
    solve(x,y,1);
    }

    int getnum()
    {
    int c=0;
    for(i=1;i<=9;i++)
    {
    for(j=1;j<=9;j++)
    {
    if(a[j]==0)
    {
    c++;
    x[c]=i;
    y[c]=j;
    }
    }
    }
    return(c);
    }

    void display()
    {
    for(i=1;i<=9;i++)
    {
    for(j=1;j<=9;j++)
    {
    if(a[j]!=0)
    printf(" %d",a[j]);
    else
    printf(" ");
    }
    printf("\n\n");
    }
    }


    void solve(int p[100],int q[100],int n)
    {
    for(k=1;k<=9;k++)
    for(i=p[n];i<=p[n];i++)
    for(j=q[n];j<=q[n];j++)
    {
    a[j]=k;
    if(n<0)
    solve(p,q,n++);
    int ch=check(1,0);
    if(ch!=0)
    {
    display();
    getch();
    exit(0);
    }
    }
    }
    }

    int check(int n,int r)
    {
    int f=0,cont=0;
    if(r==1)
    {
    for(k=1;k<=9;k++)
    {
    for(i=n;i<=n;i++)
    for(j=1;j<=9;j++)
    {
    if(k==a[j])
    f++;
    }
    if(f!=1)
    return(0);
    else
    cont++;
    f=0;
    }
    if(cont!=9)
    return(0);
    else if(n==9)
    check(1,0);
    else
    check(n++,1);
    }
    else
    {
    for(k=1;k<=9;k++)
    {
    for(i=1;i<=9;i++)
    for(j=n;j<=n;j++)
    {
    if(k==a[j])
    f++;
    }
    if(f!=1)
    return(0);
    else
    cont++;
    f=0;
    }
    if(cont!=9)
    return(0);
    else if(n!=9)
    check(n++,1);
    }
    }
    [此贴子已经被作者于2008-2-16 1:12:52编辑过]
    zan
    转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
    数学中国网站是以数学中国社区为主体的综合性学术社区,下分建模、编程、学术理论、工程应用等版块。从2003年11月建站以来一直致力于数学建模的普及和推广工作,目前已经发展成国内会员最多,资源最丰富,流量最大的数学建模网络平台。我们始终秉承服务大众的理念,坚持资源共享、共同进步的原则,努力营造出严肃、认真、务实、合作的学术氛围,为中国数学的发展做出应有的贡献。
    西香慎        

    2

    主题

    3

    听众

    36

    积分

    升级  32.63%

  • TA的每日心情
    慵懒
    2012-2-14 00:49
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    回复

    使用道具 举报

    juspee59 实名认证       

    1

    主题

    4

    听众

    37

    积分

    升级  33.68%

    该用户从未签到

    回复

    使用道具 举报

    豆儿11        

    0

    主题

    4

    听众

    139

    积分

    升级  19.5%

  • TA的每日心情
    难过
    2012-2-13 04:14
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    回复

    使用道具 举报

    豆儿11        

    0

    主题

    4

    听众

    139

    积分

    升级  19.5%

  • TA的每日心情
    难过
    2012-2-13 04:14
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    回复

    使用道具 举报

    lovecan 实名认证       

    1

    主题

    4

    听众

    638

    积分

    升级  9.5%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    bsfslxh        

    7

    主题

    2

    听众

    66

    积分

    升级  64.21%

    该用户从未签到

    回复

    使用道具 举报

    szj2008        

    12

    主题

    5

    听众

    352

    积分

    升级  17.33%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    7

    主题

    4

    听众

    1089

    积分

    升级  8.9%

  • TA的每日心情
    开心
    2011-10-9 09:49
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    新人进步奖

    回复

    使用道具 举报

    yongzlee        

    0

    主题

    3

    听众

    14

    积分

    升级  9.47%

    该用户从未签到

    新人进步奖

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-17 02:30 , Processed in 0.528225 second(s), 106 queries .

    回顶部