外国数学真题
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;
}
}
回归?旗帜;
}