| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:谁会的就进来帮帮忙啊~~~
只看楼主 加入收藏
bccn_0934
Rank: 2
等 级:论坛游民
帖 子:35
专家分:56
注 册:2011-5-9
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:3 
谁会的就进来帮帮忙啊~~~
编写程序,输入正整数n(n<8),输出全部n位的三进制数。
如输入n为2
则输出:
00
01
02
10
11
12
20
21
22
搜索更多相关主题的帖子: 编写程序 正整数 
2011-07-08 17:52
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:7 
程序代码:
char a[100];
int i=0,n,p=0,sum;
while(1)
{
scanf("%d",&n);
if(n>0&&n<8)
break;}
sum=(int)pow(3,n)-1;
while(p<=sum)
{itoa(p++,a,3);
for(i=strlen(a);i<n;i++)
printf("0");
puts(a);
}
仅供参考!
2011-07-08 18:25
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:7 
程序代码:
#include <stdio.h>
#include <string.h>

char * reverse(char * str) {
    char * p1 = str, * p2 = str + strlen(str) - 1;
    while(p1 < p2) {
        *p1 ^= *p2;
        *p2 ^= *p1;
        *p1 ^= *p2;
        p1++; p2--;
    }
    return str;
}

char * to_ternary_string(char * str, int n) {
    char * temp = str;
    while(n) {
        *temp++ = n % 3 + '0';
        n /= 3;
    }
    *temp = '\0';
    return reverse(str);
}

int pow_n(int n, int e) {
    int p = 1, i;
    for(i = 0; i < e; i++)
        p *= n;
    return p;
}

int main(void) {
    char str[9];
    int n, i, j;
    scanf("%d", &n);
    for(i = 0; i < pow_n(3, n); i++) {
        to_ternary_string(str, i);
        for(j = 0; j < n - strlen(str); j++)
            putchar('0');
        printf("%s\n", str);
    }
    return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册



[ 本帖最后由 lz1091914999 于 2011-7-8 18:36 编辑 ]

My life is brilliant
2011-07-08 18:32
刘定邦
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:687
专家分:1570
注 册:2010-9-21
收藏
得分:7 
学习了。
2011-07-08 19:00
快速回复:谁会的就进来帮帮忙啊~~~
数据加载中...
 
   



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

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