外国数学真题

c语言追求程序执行时间的效率。题目给到正方体后,有四位数,年龄范围可以人为确定为10-21岁。至于为什么六位数不更准确,个人认为没必要。这个编程的核心就是如何区分这10这几个数字的区别。我定义了一个函数,用数组和循环来判断。以下是具体代码。

#包含?& ltstdio.h & gt

# include & ltstdlib.h & gt

# include & ltmath.h & gt

int?相同(int?a[10]);//判断10的个数是否相等,如果不相等则返回1。

int?多(int?a);//判断一个整数有多少位。

主()

{?

int?a[10]?,我?,j?,s?,l;//a存储10个数字的数组,I是年龄循环变量,j存储数组中的数字,s存储四位数,l存储六位数。

for(I = 10;我& lt22;i++){

s=pow((double)i,3);

l=pow((double)i,4);

if(多(l)!=6)

继续;//如果不是六位数,退出当前循环。

for(j = 0;j & lt4;j++){

a[j]= s % 10;

s = s/10;

}//存放四位数。

for(j = 4;j & lt10;j++){

a[j]= l % 10;

l = l/10;

}//存款六位数

if(同(a))

printf("age=%d\n ",I);//输出

}

系统(“暂停”);

}

int?多(int?a){

int?I = 0;

while(a & gt;0){

a = a/10;

i++;

}

回归?我;

}

int?相同(int?a[10]){

int?I,j,flag = 1;

for(I = 0;我& lt10;i++){

for(j = I+1;j & lt10;j++){

if(a[i]==a[j])

flag = 0;

}

}

回归?旗帜;

}