| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4696 人关注过本帖
标题:怎么判断一个9位数中没有含有相同数字?
只看楼主 加入收藏
幻影逍遥
Rank: 2
等 级:论坛游民
帖 子:23
专家分:24
注 册:2011-10-31
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:9 
怎么判断一个9位数中没有含有相同数字?
如题。菜鸟提问,高手莫笑。感激不尽。
搜索更多相关主题的帖子: 数字 
2011-10-31 17:08
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:10 
摆格子,多少位数都行。设立10个格子,分别标志储存0-9的数字,逐个分析所给的数字位数,放入对应格子中,只要发现放过了,就有重复的。找重复和不重复都可以用这个办法。

授人以渔,不授人以鱼。
2011-10-31 17:14
幻影逍遥
Rank: 2
等 级:论坛游民
帖 子:23
专家分:24
注 册:2011-10-31
收藏
得分:0 
谢谢。其实我最想问的是下面代码中  flag[temp]++ 到底是什么意思以及怎么运算的?求各位解惑。
#include <stdio.h>
int func(int a)
{
    int temp, flag[10] = {1};
    for(temp=a%10;a;a/=10,temp=a%10)
        if(flag[temp]++ == 1) return 0;
    return 1;
}
void main()
{
    int base;
    for(base=123; base<345; base++)
        if(func(base*1000000+base*2*1000+base*3)==1)
            printf("%d  %d  %d\n", base, base*2, base*3);   
}
2011-10-31 17:18
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这么轻易说多谢,又有代码,我闭嘴好了。

授人以渔,不授人以鱼。
2011-10-31 17:20
wuyunxong
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:43
专家分:148
注 册:2011-10-26
收藏
得分:5 
回复 3楼 幻影逍遥
这就是二楼的说法,十个格子,对应0-9,计算,累加,其值有大于1的,就有相同!
2011-10-31 17:26
幻影逍遥
Rank: 2
等 级:论坛游民
帖 子:23
专家分:24
注 册:2011-10-31
收藏
得分:0 
呵呵。我不是这个意思。这个是我在网上找来的。只是想了好久都不晓得什么意思。代码不重要,重要的是弄懂不懂的地方。
2011-10-31 17:30
幻影逍遥
Rank: 2
等 级:论坛游民
帖 子:23
专家分:24
注 册:2011-10-31
收藏
得分:0 
回复 4楼 TonyDeng
不知道大虾方便讲详细一点摆格子的方法不?菜鸟不胜感激。
2011-10-31 17:33
jcw08120110
Rank: 8Rank: 8
来 自:南京
等 级:蝙蝠侠
帖 子:272
专家分:742
注 册:2009-6-8
收藏
得分:5 
程序代码:
#include<iostream>
#include<cmath>
#include <algorithm>
#include<vector>
using namespace std;
int main(){
    vector<int>a(9); 

    cout<<"请输入一个9位数;"<<endl;
    int b; 

    cin>>b;
    for(int i=0;i<9;++i){
        a[i]=b%int(pow(10,i+1))/pow(10,i);
    }
    sort(a.begin(),a.end());
    for(int j=1;j<9;j++)if(a[j-1]==a[j]){cout<<"存在相同的数"; return 0;}
    cout<<"不存在相同的数;";
    return 0;
}
没必要那么麻烦 我用C++写一个简单的 ~ 你一看就懂的~~~~~

[ 本帖最后由 jcw08120110 于 2011-10-31 17:44 编辑 ]

君生我未生 我生君以老
2011-10-31 17:42
幻影逍遥
Rank: 2
等 级:论坛游民
帖 子:23
专家分:24
注 册:2011-10-31
收藏
得分:0 
回复 8楼 jcw08120110
呵呵。谢谢你的好意。我暂时才刚学C语言,还没看C++呢。只是那个没看懂的,我还是很想弄懂。
2011-10-31 17:52
wuyijiang07
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:74
专家分:177
注 册:2011-10-21
收藏
得分:0 
刚开始flag[]数组中所有的值都是1,输入一个9位数a后先计算a%10取出a的个位数数值0—9中的一个,存在temp里,flag[temp]++==1之后;flag[temp]值就为2了,下次再找到相同的temp判断就不成立,return 1;
2011-10-31 18:49
快速回复:怎么判断一个9位数中没有含有相同数字?
数据加载中...
 
   



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

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