该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
using namespace std;
int main()
{
int number,divisor,count=1,residue[11],i,j;
//number表示输入的数字;
//divisor表示递增的除数,在程序中通过将此变量乘方得到10,100,1000等作为除数来求得整数的位数和整数各位上的数;
//count表示程序求得的输入整数的位数;
//数组residue[11]来储存各位上的数字,考虑到如果此整数位数大于10肯定会有重复的数字,一个整数有无重复数字在末尾
//11位上的11个数字中就可以看出来了
cout<
cin>>number;
for (i=0;i<10;i++)
{
divisor=1;
for (j=i+1;j>0;j--)
{
divisor*=10;
}
residue[i]=number/divisor;
if (residue[i]==0) break;
else count++;
}//求出数是几位数,count的取值从1到11,我们只讨论最多末11位上数字的情况
for (i=count;i>0;i--)
{
divisor=1;
for (j=i-1;j>0;j--)
{
divisor*=10;
}
residue[i]=number/divisor;
number=number-residue[i]*divisor;
}//求出各个数位上的数字
for (i=0;i
{
for (j=i+1;j
{
if (residue[i]==residue[j])
{
cout<
exit (0);
}
}
}//比较各位上的数字
cout<
return 0;
}