著名数学家诺伯特·维纳关于年龄的问题?如何用C++解决?

2024-12-09 00:04:23
推荐回答(3个)
回答1:

很简单,你把四位数和6位数取每位上的值(取余法)组成一个数组,比如char [10],对这个数组进行升序排序,得到一个字符串数组,比较这个字符串和0,1,2,3…组成的字符串,相同则表示获得了解。

回答2:

  1. main函数中再定义一个int num[10]; 用来记录每位数字是否出现

  2. 最后判断处改为:


// 先将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<<"年龄是"<

回答3:

问题在条件上,num[k]==0是答案