设为首页 加入收藏

TOP

穷举(二):直接确定区间穷举(二)
2019-06-13 12:08:05 】 浏览:354
Tags:穷举 直接 确定 区间
bsp;  if (((a1+a2)%2==0) && ((a2+a3)%3==0) && ((a1+a2+a3)%5==0))

           {

                        if((a1+a2+a3)>max)

               {

                               cnt=0;        max=a1+a2+a3;

                               a[cnt][0]=a1;   a[cnt][1]=a2;   a[cnt][2]=a3;

                        }

                        else if ((a1+a2+a3)==max)

                        {

                               cnt++;

                               a[cnt][0]=a1;   a[cnt][1]=a2;    a[cnt][2]=a3;

                        }

                 }

        }

    cout<<"Max="<<max<<endl;

    for (i=0;i<=cnt;i++)

              cout<<"("<<a[i][0]<<","<<a[i][1]<<","<<a[i][2]<<")"<<endl;

    return 0;

}

【例3】猜年龄

      美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”

      请你推算一下,他当时的年龄是多少?

      (1)编程思路。

      因为10的立方为最小的4位数,而23的立方为12167是个5位数,所以可以在10~22之间进行年龄的穷举。

      定义一个数组int a[10]用于保存数字0~9的出现情况,每次穷举时均赋初值0。对每个年龄i,计算i的立方num1和4次方num2,然后将num1和num2的各位数字分解出来,相应置数组元素a[k]=1,若某个a[k]被两次或多次置1,则不符合要求。

      (2)源程序及运行结果。

#include <iostream>

using namespace std;

int main()

    int a[10],i,k,num1,num2;

       for(i=10; i<22;i++)

     &

首页 上一页 1 2 3 4 5 6 7 下一页 尾页 2/7/7
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇个人学习笔记:C语言程序结构 下一篇有些CCS工程中为什么会有两个CMD..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目