c语言编程题 题目标题: 猜年龄 美国数学家维纳(N.Wiener)智力早熟,11岁就

作者&投稿:田威 (若有异议请与网页底部的电邮联系)
C语言编程题目~

#include#includevoid main(){ int i,j,k,temp,b1,b2,b3,b4,a1,a2,a3,a4,a5,a6; for(i=10;i 1000 && j 100000 && k < 999999) { temp = j; b1 = temp % 10; temp/=10; b2 = temp % 10; temp/=10; b3 = temp % 10; temp/=10; b4 = temp; temp = k; a1 = temp % 10; temp/=10; a2 = temp % 10; temp/=10; a3 = temp % 10; temp/=10; a4 = temp % 10; temp/=10; a5 = temp % 10; temp/=10; a6 = temp; //printf("%d %d %d
",i,j,k); //printf("%d %d %d %d
",b4,b3,b2,b1); //printf("%d %d %d %d %d %d
",a6,a5,a4,a3,a2,a1); if(a1!=a2 && a1!=a3 && a1!=a4 && a1!=a5 && a1!=a6 && a1!=b1 && a1!=b2 && a1!=b3 && a1!=b4 && a2!=a3 && a2!=a4 && a2!=a5 && a2!=a6 && a2!=b1 && a2!=b2 && a2!=b3 && a2!=b4 && a3!=a4 && a3!=a5 && a3!=a6 && a3!=b1 && a3!=b2 && a3!=b3 && a3!=b4 && a4!=a5 && a4!=a6 && a4!=b1 && a4!=b1 && a4!=b2 && a4!=b3 && a4!=b4 && a5!=a6 && a5!=b1 && a5!=b2 && a5!=b3 && a5!=b4 && a6!=b1 && a6!=b2 && a6!=b3 && a6!=b4 && b1!=b2 && b1!=b3 && b1!=b4 && b2!=b3 && b2!=b4 && b3!=b4 ) printf("age=%d
",i); } }}题目太变态,限定变量名称 ,用数组省很多键盘输入。

printf("His age is:%d.
",&i);应为printf("His age is:%d.
",i);

void main()应为int main()

c语言追求的是程序执行时间效率,题目给出立方之后是四位数,可以人为确定年龄范围在10-21岁,至于为什么不确定六位数再精确一点,个人觉得没什么必要。这个编程的核心在于如何分辨这10个数字不同,我定义了一个函数,用数组加循环判断。以下是具体代码。

#include <stdio.h>
#include<stdlib.h>
#include<math.h>

int same(int a[10]);//判断10个数是否相等,相互不相等返回1
int many(int a);//判断一个整型数是几位数

main()
{   
int a[10] ,i ,j ,s ,l;  //a储存10个数字的数组,i年龄循环变量,j将数字存入数组,s储存四位数,l储存六位数
for(i=10;i<22;i++){
s=pow((double)i,3);
l=pow((double)i,4);
if(many(l)!=6)
continue;//如果不是六位数则退出当次循环
for(j=0;j<4;j++){
a[j]=s%10;
s=s/10;
}//存入四位数
for(j=4;j<10;j++){
a[j]=l%10;
l=l/10;
}//存入六位数
if(same(a))
printf("age=%d
",i);//输出
}
system("pause");
}

int many(int a){
int i=0;
while(a>0){
a=a/10;
i++;
}
return i;
}

int same(int a[10]){
int i,j,flag=1;
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(a[i]==a[j])
flag=0;
}
}
return flag;
}


Java程序:

public class Test {
public static void main(String[] args) {
int age;
int num1, num2;
int[] arr = new int[10];
int start = (int) Math.pow(10, 5.0/4);
int max = (int) Math.pow(10, 4.0/3);
int i;

for(age=start; age<max; age++) {
num1 = age * age * age;
num2 = age * age * age * age;
if(! (num1>=1000 && num1<10000) && !(num2>=10000 && num2<100000)) {
continue;
}
i = 0;
while(num1 > 0) {
arr[i++] = num1 % 10;
num1 /= 10;
}
while(num2 > 0) {
arr[i++] = num2 % 10;
num2 /= 10;
}
if(isDup(arr) == false) {
System.out.println(age);
}
}

}

//判断数组arr中是否存在相同的数
static boolean isDup(int[] arr) {
int i, j;
for(i=0; i<arr.length-1; i++) {
for(j=i+1; j<arr.length; j++) {
if(arr[j] == arr[i]) {
return true;
}
}
}
return false;
}
}


运行结果:

18



#include <stdio.h>
int main(){
int i,j,c[10]={0};
char a[11],b[10],v=1;
for(i=11;i<99;i++){
sprintf(a,"%d",i*i*i);
sprintf(b,"%d",i*i*i*i);
for(j=0;j<4;j++)
c[a[j]-48]=1;
for(;j<10;j++)
c[b[j]-48]=1;
for(j=0;j<10;j++){
if(c[j]==0)
v=0;
}
if(v==1&&strlen(a)==4&&strlen(b)==6)
break;
v=1;
}
printf("年龄为%d",i);
return 0;
}

import java.util.*;
/*
* 暴力枚举
*
*
* 真题:年龄谜题
美国数学家维纳(N.Wiener)智力早熟,11 岁就上了大学。他曾在 1935~1936 年应
邀来中国清华大学讲学。一次,他参加某个重要会议,年轻的脸孔引人注目。于是
有人询问他的年龄,他回答说:“我年龄的立方是个 4 位数。我年龄的 4 次方是个
6 位数。这 10 个数字正好包含了从 0 到 9 这 10 个数字,每个都恰好出现 1 次。”
请你推算一下,他当时到底有多年轻。
*/
public class Main {
public static void main(String[] args) {
String s;
for (int i = 1; i < 100; i++) {
s = "" + i * i * i + i * i * i * i;
if (test(s) == false) {
continue;
}
System.out.println(i);
}
}
private static boolean test(String s) {
if (s.contains("0") && s.contains("1") && s.contains("2") && s.contains("3") && s.contains("4")
&& s.contains("5") && s.contains("6") && s.contains("7") && s.contains("8") && s.contains("9")) {
return true;
}
return false;
}
}

public class Test {

public static void main(String[] args) {
for (int i = 1; i < 100; i++) {
String a = ""+(int) Math.pow(i, 3);
String b = ""+(int) Math.pow(i, 4);
if(a.length()==4&&b.length()==6&&f(a+b)){
System.out.println(i);
break;
}
}
}
private static boolean f(String str) {
for (int i = 0; i <= 9; i++) {
if(-1==str.indexOf(""+i)){
return false;
}
}
return true;
}

}





乌苏市13817541246: c语言题目:输入身份证 输出姓名年龄性别 -
旗饺悦康: 姓名应该是出不来的了.年龄和性别到时可以通过字符串截取求出来

乌苏市13817541246: c语言的程序怎么做(题目是:80岁以上的老人或10岁以下的儿童或女同志去公园不要票) -
旗饺悦康: #include<stdio.h> int main() { int nianling; char xingbie; printf("请输入您的年龄:"); scanf("%d",&nianling); if(nianling >=80 || nianling <=10) { printf("不需要购票,直接进入!\n"); } else { printf("请输入您的性别(F或f表示女士,M...

乌苏市13817541246: C语言题目:“我年龄的立方是个4位数.我年龄的4次方是个6位数.这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次.” -
旗饺悦康: #include<stdio.h> main() { int i,a[11],j,m,n,z,flag; for(i=10; i<100; i++) { if(i*i*i>=1000 && i*i*i<10000 && i*i*i*i>=100000 && i*i*i*i<1000000) { m=i*i*i,n=i*i*i*i; a[1] = m%10; a[2] = m/10%10; a[3] = m/100%10; a[4] = m/1000; a[5] = n%10; a[6] = n/10%...

乌苏市13817541246: 今年必考点六年级题目(写算式):小丽设计的猜年龄程序如下: -
旗饺悦康: (x+200)/2-100=x/249*2=9410/2=5

乌苏市13817541246: C语言编程题目
旗饺悦康: 年龄和i,j,k是:70,10,2,3,5 程序: #include <stdio.h> void main() { int i,j,k,m,n,y; for(n=1;n<100;n++) for(m=0;m<n;m++) for(k=0;k<m;k++) for(j=0;j<k;j++) for(i=0;i<j;i++) for(y=0;y<n;y++) if((m*7+y)==n && (m+i)*6==(n+i) && (m+i+j)*5==(n+i+j) && (m+i+j+k)*4==(n+i+j+k)) {printf("%d,%d,%d,%d,%d",n,m,i,j,k);return;} }

乌苏市13817541246: C语言编程题目!跪求答案,谢谢!!
旗饺悦康: int year(int num){if(num==1)return 10;return year(num-1)+2; } void main(){ printf("第五个的年龄是:%d",year(5)); }

乌苏市13817541246: 求C语言程序题目解
旗饺悦康: #include<stdio.h> #include<math.h> int main() { float a,b; float sub; printf("请输入第一个人的年龄:\n"); scanf("%f",&a); printf("请输入第二个人的年龄:\n"); scanf("%f",&b); sub=a-b; printf("这两个人的年龄差是:%.0f\n",fabs(sub)); }

乌苏市13817541246: C语言编程题目 -
旗饺悦康: #include int substitute(char f, char s, char *str) { int cnt = 0; for (int i = 0; str[i] != '\0'; ++i) { if (str[i] == f){ str[i] = s; cnt++; } } return cnt; } int main() { char f = 'c', s = 's', str[] = "school"; int cnt = substitute(f, s, str); printf("%s\n%d\n", str, cnt); return 0; }

乌苏市13817541246: C语言编程题目
旗饺悦康: #include<stdio.h> #include<stdlib.h> typedef struct node { int no; char name[60]; int age; int score[3]; struct node *next; }LNode,*LinkList;LinkList CreatLinkList(int N) { LinkList L=NULL; /*空表*/ L=(LinkList)malloc(sizeof(LNode)); if(L==NULL) { ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网