| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 875 人关注过本帖
标题:几道题不知道怎么写
只看楼主 加入收藏
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:8 
几道题不知道怎么写
将1—9九个数字分成三组,每个数字只能用一次,要求每组中的三位数都组成一个完全平方数。
n个人围成一圈,从第一个人开始,从1—3循环报数,报道3的人退出圈子,然后下一个人继续报数,问最后留下来的那个人原来的编号。
这两道题一直想不出要从何入手,请大家指点一下,谢谢。。。
搜索更多相关主题的帖子: 几道题 
2009-07-22 14:57
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:14 
1:
#include <stdio.h>
int main()
{
    int a[22],b[3],c[13],d[9],i,j,k,m,n,flag;
    j=0;
    k=0;
    for(i=10;i<32;i++){
        a[j++]=i*i;
        b[0]=a[j-1]%10;
        b[1]=(a[j-1]/10)%10;
        b[2]=a[j-1]/100;
        if(!(b[0]==b[1]||b[1]==b[2]||b[0]==b[2])){
            c[k++]=a[j-1];
        }
    }
    for(i=0;i<11;i++){
        for(j=i+1;j<12;j++){
            for(k=j+1;k<13;k++){
                flag=1;
                d[0]=c[i]%10;
                d[1]=(c[i]/10)%10;
                d[2]=c[i]/100;
                d[3]=c[j]%10;
                d[4]=(c[j]/10)%10;
                d[5]=c[j]/100;
                d[6]=c[k]%10;
                d[7]=(c[k]/10)%10;
                d[8]=c[k]/100;
                for(m=0;m<8;m++){
                    for(n=m+1;n<9;n++){
                        if(d[m]==d[n]){
                            flag=0;
                        }
                    }
                }
                if(flag==1){
                    printf("%d %d %d\n",c[i],c[j],c[k]);
                }
            }
        }
    }
    return 0;
}
2:
#include <stdio.h>
int main()
{
    int i,j,n;
    do{
        scanf("%d",&n);
        for(j=1,i=2;i<=n;i++){
            j= j+3>i?j+3-i:j+3;
        }
        printf("remain %d\n",j);
    } while (n);
   return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-07-22 15:39
飘到心海
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:79
专家分:145
注 册:2009-5-3
收藏
得分:0 
厉害
2009-07-22 16:17
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
收藏
得分:0 
回复 2楼 NoSoul
谢谢。。。
第一题,我还不是很懂,能给个思路吗?还有第二题。。。
呵呵。。。

[[it] 本帖最后由 曼珠沙华 于 2009-7-22 21:49 编辑 [/it]]

走过了,却留下了痕迹。伤过了,却是一种无奈。人生只不过是一种擦肩而过的过程。
2009-07-22 21:34
himpo
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:192
专家分:123
注 册:2008-5-16
收藏
得分:3 
第一题这么想..

从100到999之间的完全平方数并且数字互不相同的总共就13个.(这个程序容易实现)

再从那13个数里面找出3个满足你要求的.
2009-07-23 09:10
zbyw
Rank: 2
等 级:论坛游民
帖 子:31
专家分:57
注 册:2009-7-23
收藏
得分:3 
#include <stdio.h>
int main()
{
    int a[22],b[3],c[13],d[9],i,j,k,m,n,flag;
    j=0;
    k=0;
    for(i=10;i<32;i++){
        a[j++]=i*i;
        b[0]=a[j-1]%10;
        b[1]=(a[j-1]/10)%10;
        b[2]=a[j-1]/100;
        if(!(b[0]==b[1]||b[1]==b[2]||b[0]==b[2])){
            c[k++]=a[j-1];
        }//判断一个平方数中的组成是不是有重复的数字
    }//找出100到999内的平方数
    for(i=0;i<11;i++){
        for(j=i+1;j<12;j++){
            for(k=j+1;k<13;k++){
                flag=1;
                d[0]=c[i]%10;
                d[1]=(c[i]/10)%10;
                d[2]=c[i]/100;
                d[3]=c[j]%10;
                d[4]=(c[j]/10)%10;
                d[5]=c[j]/100;
                d[6]=c[k]%10;
                d[7]=(c[k]/10)%10;
                d[8]=c[k]/100;
                for(m=0;m<8;m++){
                    for(n=m+1;n<9;n++){
                        if(d[m]==d[n]){
                            flag=0;
                        }
                    }
                }
                if(flag==1){
                    printf("%d %d %d\n",c[i],c[j],c[k]);
                }
            }
        }
    }//比较其他的平方数中是否重复
    return 0;
}
2009-07-23 10:55
zbyw
Rank: 2
等 级:论坛游民
帖 子:31
专家分:57
注 册:2009-7-23
收藏
得分:0 
这只是我的解释,不知道是否正确
2009-07-23 10:56
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
回复 7楼 zbyw:
你的判断很对
回复 曼珠沙华:
第二题给你个易懂的代码(你自己模拟他的过程):
#include<stdio.h>
int main()
{
    int a[100];
    int n,i,count=0,j=0;
    scanf("%d",&n);
    for(i=1;j<n;i++)
        for(i=1;i<=n;i++){
            if(a[i]==1)continue;
            count++;
            if(count%3==0){
                a[i]=1;
                j++;
                printf("%d ",i);
            }
        }
    printf("\n");
    return 0;
}

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2009-07-23 15:38
曼珠沙华
Rank: 2
来 自:广东
等 级:论坛游民
帖 子:121
专家分:98
注 册:2009-5-21
收藏
得分:0 
懂了。。。谢谢你们

走过了,却留下了痕迹。伤过了,却是一种无奈。人生只不过是一种擦肩而过的过程。
2009-07-23 22:13
快速回复:几道题不知道怎么写
数据加载中...
 
   



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

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