很简单,你把四位数和6位数取每位上的值(取余法)组成一个数组,比如char [10],对这个数组进行升序排序,得到一个字符串数组,比较这个字符串和0,1,2,3…组成的字符串,相同则表示获得了解。
main函数中再定义一个int num[10]; 用来记录每位数字是否出现
最后判断处改为:
// 先将num[]清空
for(k=0; k<10; k++)
num[k] = 0;
// 逐个判断四位数,例如出现数字2,则num[2]被标为1
for(k=0; k<4; k++)
num[b[k]] = 1;
// 6位数也是如此
for(k=0; k<6; k++)
num[a[k]] = 1;
// 如果数字0到9都出现一次,则num[]都为1
for(k=0; k<10; k++)
{
// 所以如果出现0的情况,说明该标号的数字没有出现过,直接跳出本循环
if (num[k] == 0)
break;
}
// 如果循环是正常完成而非跳出,则说明符合条件
if (10==k)
cout<<"年龄是"<
问题在条件上,num[k]==0是答案