| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4603 人关注过本帖
标题:C语言 打印1-100以内不含7的数字(多种方式实现。)
只看楼主 加入收藏
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
虽然已经结贴
还是再补充一种代码吧

程序代码:
#include <stdio.h>

#define N 800
#define NOZERO 7

int count(int n);
int ten_pow(int n);

int main(tmpoid) {
    int n = 0, i, t, v;

    while(++n <= N) {
        t = n;
        i = count(t);

        while(i--) {
            v = ten_pow(i);
            if(NOZERO == t / v) break;

            t %= v;
        }

        if(t < 10 && t != NOZERO) printf("%d ", n);
    }

    return 0;
}

int count(int n) {
    int i = 1;

    while(n >= 10) {
        n /= 10;
        i++;
    }

    return i;
}

int ten_pow(int n) {
    int v = 1;

    while(n--) v *= 10;

    return v;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-26 10:49
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
哪有那么复杂,关键算法部分应该不超过5句即可通用任意数范围查找并显示。
2015-03-26 11:45
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
那好 再写一遍


程序代码:
#include <stdio.h>
#define N 1000
#define NUM 0

int main(void) {
    int n = 0, t;

    while(++n <= N) {
        t = n;

        while(t >= 10) {
            if(t % 10 == NUM) t = NUM;

            else {
                t /= 10;

                if(t % 10 == NUM) t = NUM;
            }
        }

        if(t != NUM) printf("%d ", n);
    }


    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-26 15:54
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:0 
最后再来个递归版

程序代码:
#include <stdio.h>
#define N 1000
#define NUM 7

int foo(int n) {
    if(n < 10) return n != NUM ? 1 : 0; 
    return foo(n % 10 != NUM ? n / 10 : NUM);
}

int main(void) {
    int n = 0;
    while(++n <= N)
        if(foo(n)) printf("%d ", n);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-26 19:24
快速回复:C语言 打印1-100以内不含7的数字(多种方式实现。)
数据加载中...
 
   



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

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