阅读以下说明和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 );
}
相关标签: 候选者 自然数
设M、N都是自然数,记PM是自然数M的各位数字之和,PN是自然数N的各位数字之和。又记M*N是M除以N的余数。已知M+N=4084,那么(PM+PN)*9的值是()。
A.7
B.9
C.0
D.5
试题二(共15分)
阅读以下说明和C 函数,将应填入(n) 处的字句写在答题纸的对应栏内。
[说明]
某单位准备进行一次选举,对指定的n 名(n<80)候选人进行投票。为了简化选举工作,事先印制了写有这n 名候选人姓名的选票,投票者只需将选中者名下的圆圈涂黑即可。规定每张选票上被涂黑的圆圈数不得超过3 个,也不得少于1 个,否则视为无效选票。投票结束后,所有选票经计算机扫描处理,形成了描述选票状态的文本文件。例如,
n=8 时所形成的文件如下:
01011000
10010100
10011000
11111111
00000000
00111000
…
其中,每行表示一张选票的数据,每列代表一位候选者的得票情况。第i 行第j 列为1,表示第i 张选票上投了第j 名候选人1 票。函数statistic( )的功能是读入选票数据,并统计每位候选者的得票数,函数返回
有效选票数。
[C函数]
int statistic(FILE *fp,int candidate[],int n)
{ /* 从文件中读入选票数据,n 为候选人数量(n<80),从有效选票中统计每位候选者
的得票数并存入candidate[],函数返回有效选票数*/
char str[80]; /* str 保存读入的一张选票数据 */
int i,tag = 0; /* tag用于判断每张选票是否有效 */
int q = 0; /* q用于计算有效选票数 */
for(i = 0; i < n; i++)
candidate[i] = 0;
while ( (1) ) {
fgets(str,80,fp); /* 读入一张选票数据 */
for(tag = 0,i = 0; (2) ; i++)
if (str[i] == '1') tag++;
if ( (3) ){ /* 若是有效选票,则进行统计 */
(4) ;
for(i = 0; i < n; i++)
if (str[i] == '1') (5) ;
}
}
return q;
}/* statistic */