【发布时间】:2010-08-05 19:40:17
【问题描述】:
我被告知要编写生成唯一 5 位数字的程序(例如 12345 是唯一的,而 11234 不是)
我写了以下代码
#include <iostream>
#include <stdlib.h>
#include <map>
using namespace std;
using std::rand;
const int k=99999-10234;
bool unique(int t){
map<int,int>my;
map<int,int>::iterator it;
while (t!=0){
++my[t%10];
t/=10;
}
for (it=my.begin();it!=my.end();it++){
if ( it->second>0) {
return false;
}
}
return true;
}
int main(){
int m=0;
m= 10234+ rand()%k;
if (unique(m)){
cout<<" unique number was generated =:"<<m<<" ";
}
else{
do{
m=10234+rand()%k;
if (unique(m)){
cout<<"unique number was generated"<<m<<" ";
break;
}
} while(!unique(m));
}
return 0;
}
但它没有显示任何输出,请帮我看看我的代码有什么问题?
【问题讨论】:
标签: c++ algorithm permutation