【C++】第5章:(三)巧用数组下标 (判断一个数有无重复数字、十进制转换成二进制)

【例1】输入一个整数,判断该数是否有重复的数字

1.先将a[10]初始化为0;

2.当分解整数的每个数时,用a[k]++做各个数字k的计数器

#include <iostream>
using namespace std;
int main()
{
int n,k,i;
 int a[10]={0};//初始化数组每个元素为0
 cout<<"请输入整数:";
 cin>>n;
 do
 {
  k=n%10;//取最后一位的数字
  a[k]++;//当k出现同一个数时,数组元素作为一个计数器做累加,这时也可以把a[k]看做是一个标志变量的作用
  n/=10;
 }while (n!=0);
 for(i=0;i<10;i++)//遍历数组的每个元素
 {
  if(a[i]>1)
  {
   cout<<"重复"<<endl;
   return 0; //当有一个元素有重复时,return 0结束程序
  }
 }
  cout<<"无重复"<<endl;
  return 0; 
}

【例2】输入一个十进制整数,转换成二进制数

1.用数组a[j]存放整数n对2整除的余数;

2.逆向输出a[j]的值

代码如下:

#include <iostream>
using namespace std;
int main ()
{
int n,i=0;
 int a[1000];
 cin>>n;
 while(n)//当整数不为0时不断对2整除,将余数存放在数组a[i]中
 {a[i]=n%2;
 n/=2;
 i++;
 }
 for(n=i-1;n>=0;n--)//从后往前输出数组中的余数
 cout<<a[n];
 cout<<endl;
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值