hi


私信TA

用户名:1014003326

访问量:7158

签 名:

等  级
排  名 5396
经  验 1484
参赛次数 0
文章发表 10
年  龄 20
在职情况 学生
学  校 山东信息职业技术学院
专  业

  自我简介:

题目标题: 猜年龄


    美国数学家维纳(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;
}



 

0.0分

11 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区