阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【说明】找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f者是是自然数,a≤b≤C≤d≤e≤f; [a,b,c]!=[d,e,f)【C++程序】include<stdio.h>define N 100void main (){int i,j,il,ih,i0,j0,k0,il,j 1,k1;int j1[N],jh[N];/*第i层平面的行的变化范围,自jl[i]至jh[i]*/int k[N][N];/*第i层平面中,对应行j,当前的列号值为k[i][j]*/int p[N], min;/*p[i]=i*i*i*/i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/k[i1][j1[i1>=1;/*第i层平面中,对应行的列的初值*/p[1]=1;do{min=p[i1]+p[j1]+p[k1];i0=i1;j0=j1;k0=k1;if ( i1==ih ) /*当前候选者在ih平面, 则ih增1*/{ih++;(1);/*为ih平面设定j的变化范围和对应k值*/j1[ih]=1;jh[ih]=1;k[ih][1]=1;}if ( i1==i1j 1==i1k1==i1 )i1++;/*在i1平面最下角点找到候选者,i1增1*/else{if ( k1==1jh[i1]<i1 ){/*在第一列找到候选者, i1平面的行的上界增1*/(2);k[i1][jh[i1>=1;}if( k1==j1j1[i1]<i1 )else(3);/*调整i1平面当前行的列号*/}i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/j1=j1[i1];k1=k[i1][j1];for ( i=i1;i<=ih;i++ ) /*寻找最小值所在平面号、行号和列号*/{for ( j=j1[i];j<=jh[i];j++ )if ( p[i]+p[j]+p[k[i][j><(4)){i1=i;j 1=j;k1=k[i][j];}}}while ( p[i1]+p[j1]+p[k1]!=min(5));if ( p[i1]+p[j1]+p[k1]==min )printf ( "%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3\n",min,i0,j0,k0,i1,j1,k1 );else printf ( "The %d is too small.\n",N );}

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

【说明】

找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f者是是自然数,a≤b≤C≤d≤e≤f; [a,b,c]!=[d,e,f)

【C++程序】

include<stdio.h>

define N 100

void main ()

{

int i,j,il,ih,i0,j0,k0,il,j 1,k1;

int j1[N],jh[N];/*第i层平面的行的变化范围,自jl[i]至jh[i]*/

int k[N][N];/*第i层平面中,对应行j,当前的列号值为k[i][j]*/

int p[N], min;/*p[i]=i*i*i*/

i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/

i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/

j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/

k[i1][j1[i1>=1;/*第i层平面中,对应行的列的初值*/

p[1]=1;

do

{

min=p[i1]+p[j1]+p[k1];

i0=i1;j0=j1;k0=k1;

if ( i1==ih ) /*当前候选者在ih平面, 则ih增1*/

{

ih++;

(1);

/*为ih平面设定j的变化范围和对应k值*/

j1[ih]=1;jh[ih]=1;k[ih][1]=1;

}

if ( i1==i1&&j 1==i1&&k1==i1 )

i1++;/*在i1平面最下角点找到候选者,i1增1*/

else

{

if ( k1==1&&jh[i1]<i1 )

{/*在第一列找到候选者, i1平面的行的上界增1*/

(2);

k[i1][jh[i1>=1;

}

if( k1==j1&&j1[i1]<i1 )

else

(3);/*调整i1平面当前行的列号*/

}

i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/

j1=j1[i1];

k1=k[i1][j1];

for ( i=i1;i<=ih;i++ ) /*寻找最小值所在平面号、行号和列号*/

{

for ( j=j1[i];j<=jh[i];j++ )

if ( p[i]+p[j]+p[k[i][j><(4))

{

i1=i;j 1=j;k1=k[i][j];

}

}

}while ( p[i1]+p[j1]+p[k1]!=min&&(5));

if ( p[i1]+p[j1]+p[k1]==min )

printf ( "%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3\n",min,i0,j0,k0,i1,j1,k1 );

else printf ( "The %d is too small.\n",N );

}


相关考题:

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【C++程序】include include 阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。【C++程序】include < stdio. h >include < string. h >define Max 1000class Bank{int index;char date [Max] [10]; // 记录交易日iht amount[Max]; // 记录每次交易金额,以符号区分存钱和取钱int rest[ Max]; // 记录每次交易后余额static iht sum; // 账户累计余额public:Bank( ) {index =0;}void deposit( char d[ ] , int m) //存入交易{strcpy ( date [ index ], d);amount[ index] = m;(1);rest[ index] = sum;index++;}void withdraw (char d[ ], int m) //取出交易{strcpy( date[ index] ,d);(2);(3);rest[ index] = sum;index++;}void display( );};int Bank:: sum = 0;void Bank:: display ( ) //输出流水{int i;printf("日期 存入 取出 余额\n");for (4){printf(" %8s" ,date[i] );if (5)printf(" %6d" , -amount[i] );elseprintf( "%6d ",amount[i] );printf( "% 6d\n" ,rest[i] );} }void main( ){Bank object;object. deposit ( "2006.2.5", 1 00 );object. deposit( "2006.3.2" , 200);object. withdraw( "2006.4.1", 50);object. withdraw( "2006.4.5", 80);object. display ( );}本程序的执行结果如下:日期 存入 取出 余额 2006.2.5 100 1002006.3.2 200 3002006.4.1 50 2502006.4.5 80 170

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。【说明】已知头指针分别为La和lb的有序单链表,其数据元素都是按值非递减排列。现要归并La和Lb得到单链表Lc,使得Lc中的元素按值非递减排列。程序流程图如下所示:

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。【说明】以下程序为求行列式X(5,5)的值S。【Visual Basic代码】Private Function col ( byval x ( 5,5 ) as integer ) as longdim fesult as longdim temp as longdim I as integerdim j as integerdim k as imegerresult = 0for I = to 5(1)for j = 1 to 5if I+j>6 thenk= ( 1+j ) mod 5elsek=1endiftemp=temp*x ( k,j )(2)result=(3)(4)(5)End function

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]设学生某次考试的成绩按学号顺序逐行存放于某文件中,文件以单行句点“.”为结束符。下面的流程图读取该文件,统计出全部成绩中的最高分max和最低分min。

阅读以下说明和c++码,将应填入(n)处的字名写在的对应栏内。[说明] 以下函数完成求表达式的值,请填空使之完成此功能。float sum ( float x ){ float s=0.0;int sign = 1;(1);for(inti=1;(2); i+ +){t=t*x;s=s+(3);sign = - sign;(4);}

阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写在对应栏内。【说明】阅读下面几段C++程序回答相应问题。比较下面两段程序的优缺点。①for (i=0; i<N; i++ ){if (condition)//DoSomething…else//DoOtherthing…}②if (condition) {for (i =0; i<N; i++ )//DoSomething}else {for (i=0; i <N; i++ )//DoOtherthing…}

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明]下面的流程图用于计算一个英文句子中最长单词的长度(即单词中字母个数)MAX。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。[流程图]

试题三(共 15 分)阅读以下说明和 C 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

阅读下列说明和C++-代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 某发票(lnvoice)由抬头(Head)部分、正文部分和脚注(Foot)部分构成。现采用装饰(Decorator)模式实现打印发票的功能,得到如图5-1所示的类图。【C++代码】 #include using namespace std; class invoice{ public: (1){ cout

阅读下列说明和?C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】阅读下列说明和?Java代码,将应填入?(n)?处的字句写在答题纸的对应栏内。【说明】某快餐厅主要制作并出售儿童套餐,一般包括主餐(各类比萨)、饮料和玩具,其餐品种类可能不同,但其制作过程相同。前台服务员?(Waiter)?调度厨师制作套餐。现采用生成器?(Builder)?模式实现制作过程,得到如图?6-1?所示的类图。