题目标题: 猜年龄


    美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。他曾在1935~1936年应邀来中国清华大学讲学。


    一次,他参加某个重要会议,年轻的脸孔引人注目。于是有人询问他的年龄,他回答说:


    “我年龄的立方是个4位数。我年龄的4次方是个6位数。这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。”


    请你推算一下,他当时到底有多年轻。


    通过浏览器,直接提交他那时的年龄数字。

    注意:不要提交解答过程,或其它的说明文字。


思路:单循环,for(i=1;i<100;i++)  试试这个i是否满足题意条件,满足就输出。

过程:枚举-->数的各个位上的数字的分离-->判定数组中的内容是否是指定内容-->输出。


#include <stdio.h>
int main() {
	int i,j,k,t,log,a[20];
	for(i=10; i<100; i++) {		//这个i是否满足条件满足条件,就是这个数了。 
		j=0;	//这些数据是反复使用的,每次都要置零。 
		leg=0;		
		t=i*i*i;
		while (t!=0) {    //提取每个位上的数,存在数组里面。 
			a[j++]=t%10;
			t=t/10;
		}
		t=i*i*i*i;
		while (t!=0) {
			a[j++]=t%10;
			t=t/10;
		}
		for(k=0; k<10; k++) {    //这个操作检查这个数组里面是否满足题意,十个数,0到9。 
			for(t=0; t<10; t++) {	//十个数,且每个数都是个位数,当且仅当,满足题意。 
				if(a[k]==a[t]) {
					leg++;
				}
			}
		}
		if(leg==10) {    //如果符合题意,就输出。 
			printf("%d\n",i);
			break ;    //拿到结果就退出循环喽。 
		}			
	}
	return 0;
}



点赞(2)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论