判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法1

2024-01-10 13:19

本文主要是介绍判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法1,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

/*
题目:判断一个整数中是否有重复数字(0~9),该数字不以0开头
方法1:利用函数将数字从低位(个位)到高位进行分解,每分解一位,判断该数是否在0~9中出现,
如果从未出现过该位数字,则将该数字下标对应字符设置为'x',表示该数字已经出现过。
如果下次得到的另一个位的数为数字下标对应的字符为'x',表示此位数字再次出现,则返回false,
表示这个整数中有重复数字。
*/
#include<iostream>  
#include<cstring>
using namespace std;  
bool checkNum(int n){  
char arr[]="0123456789";  //数组下标整数值对应对应的整数字符
do{  
if(arr[n%10]<='9') //此位上的数是0~9的数,且从未出现过
{  
arr[n%10]='x';  //标记对应数字为已出现过,为'x'
}else{   //第二次出现了
return false;  
}  
n/=10;  //从个位开始循环判断各个位上数字
}while(n!=0);  
return true;  
}  
int main()
{
int digit_10;
cout<<"请输入10位数以内的整数:";
while(cin>>digit_10&&digit_10<9999999999)
{
if(checkNum(digit_10))
cout<<"此数中没有重复数字"<<endl;
else
cout<<"此数中存在重复数字"<<endl;
cout<<"请输入10位数以内的整数";
}
return 0;
}


 

 

#include<iostream>  
#include<cstring>
using namespace std;  
bool checkNum(int n){  
int arr[]={0,1,2,3,4,5,6,7,8,9};  //数组下标整数值对应对应的整数
do{  
if(arr[n%10]>=0&&arr[n%10]<=9) //此位上的数是0~9的数,且从未出现过
{  
arr[n%10]=-1;  //标记对应数字为已出现过,将数组元素值改为-1
}else{   //第二次出现了
return false;  
}  
n/=10;  //从个位开始循环判断各个位上数字
}while(n!=0);  
return true;  
}   
int main()
{
int digit_10;
cout<<"请输入10位数以内的整数:";
while(cin>>digit_10&&digit_10<9999999999)
{
if(checkNum(digit_10))
cout<<"此数中没有重复数字"<<endl;
else
cout<<"此数中存在重复数字"<<endl;
cout<<"请输入10位数以内的整数";
}
return 0;
}

这篇关于判断一个整数中是否有重复数字(0~9),该数字不以0开头--------方法1的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/590937

相关文章

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

poj2406(连续重复子串)

题意:判断串s是不是str^n,求str的最大长度。 解题思路:kmp可解,后缀数组的倍增算法超时。next[i]表示在第i位匹配失败后,自动跳转到next[i],所以1到next[n]这个串 等于 n-next[n]+1到n这个串。 代码如下; #include<iostream>#include<algorithm>#include<stdio.h>#include<math.

poj3261(可重复k次的最长子串)

题意:可重复k次的最长子串 解题思路:求所有区间[x,x+k-1]中的最小值的最大值。求sa时间复杂度Nlog(N),求最值时间复杂度N*N,但实际复杂度很低。题目数据也比较水,不然估计过不了。 代码入下: #include<iostream>#include<algorithm>#include<stdio.h>#include<math.h>#include<cstring

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

浅谈主机加固,六种有效的主机加固方法

在数字化时代,数据的价值不言而喻,但随之而来的安全威胁也日益严峻。从勒索病毒到内部泄露,企业的数据安全面临着前所未有的挑战。为了应对这些挑战,一种全新的主机加固解决方案应运而生。 MCK主机加固解决方案,采用先进的安全容器中间件技术,构建起一套内核级的纵深立体防护体系。这一体系突破了传统安全防护的局限,即使在管理员权限被恶意利用的情况下,也能确保服务器的安全稳定运行。 普适主机加固措施:

webm怎么转换成mp4?这几种方法超多人在用!

webm怎么转换成mp4?WebM作为一种新兴的视频编码格式,近年来逐渐进入大众视野,其背后承载着诸多优势,但同时也伴随着不容忽视的局限性,首要挑战在于其兼容性边界,尽管WebM已广泛适应于众多网站与软件平台,但在特定应用环境或老旧设备上,其兼容难题依旧凸显,为用户体验带来不便,再者,WebM格式的非普适性也体现在编辑流程上,由于它并非行业内的通用标准,编辑过程中可能会遭遇格式不兼容的障碍,导致操

poj 3259 uva 558 Wormholes(bellman最短路负权回路判断)

poj 3259: 题意:John的农场里n块地,m条路连接两块地,w个虫洞,虫洞是一条单向路,不但会把你传送到目的地,而且时间会倒退Ts。 任务是求你会不会在从某块地出发后又回来,看到了离开之前的自己。 判断树中是否存在负权回路就ok了。 bellman代码: #include<stdio.h>const int MaxN = 501;//农场数const int

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

PTA求一批整数中出现最多的个位数字

作者 徐镜春 单位 浙江大学 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。 输入格式: 输入在第1行中给出正整数N(≤1000),在第二行中给出N个不超过整型范围的非负整数,数字间以空格分隔。 输出格式: 在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n