gpt4 book ai didi

c++ - 生成唯一的 5 位数字

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:21 28 4
gpt4 key购买 nike

我被告知要编写生成唯一 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;
}

但它没有显示任何输出,请帮我看看我的代码有什么问题吗?

最佳答案

我认为行:

if ( it->second>0) {

应该是:

if ( it->second>1) {

因为当您找到数字的第一个实例并将其放入映射中时,映射中该数字的值为 1,而不是 0。

关于c++ - 生成唯一的 5 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3413775/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com