| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5047 人关注过本帖
标题:一个同学的年龄的平方是三位数,立方四个四位数,四次方是个六位数,三次方 ...
只看楼主 加入收藏
木下瞳
Rank: 1
等 级:新手上路
帖 子:37
专家分:6
注 册:2017-9-24
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:14 
一个同学的年龄的平方是三位数,立方四个四位数,四次方是个六位数,三次方和四次方正好用遍0,1,2,3,4,5,6,7,8,9这十个数字,问他的年龄
#include<stdio.h>
#include<math.h>
int main(){
    int age = 10;
    long n2,n3,n4,num[10],s[10];
    int i;
    for(;age <= 21;age++)//对所有可能的年龄穷举
    {
        i = 0;
        n2 = pow(age,2);
        n3 = pow(age,3);
        n4 = pow(age,4);
        while(n3 != 0)//把年龄的3次方的各个数字存到数组
        {
            num[i++] = n3 % 10;
            n3 /= 10;
        }
        while(n4 != 0)//把年龄的4次方的各个数字存到数组
        {
            num[i++] = n4 % 10;
            n4 /= 10;
        }
        for(i = 0;i <= 9;i++)//统计上面数组中各个数字出现的个数
            s[num[i]]++;
        for(i = 0;i <= 9;i++)//判断有无重复数字
        {
            if(s[i] == 1)//如果出现的次数为1
            {
                if(i == 9)//表示前面的数字都出现过一次才执行
                    printf("the number is %d",age);
            }else
                break;
        }
    }
}
搜索更多相关主题的帖子: 年龄 位数 次方 数字 age 
2018-02-21 18:28
木下瞳
Rank: 1
等 级:新手上路
帖 子:37
专家分:6
注 册:2017-9-24
收藏
得分:0 
回复 楼主 木下瞳
哪有错?
2018-02-21 18:28
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<math.h>
//一个同学的年龄的平方是三位数,立方四个四位数,四次方是个六位数,
//三次方和四次方正好用遍0,1,2,3,4,5,6,7,8,9这十个数字,问他的年龄
int main(){
    int age = 10;
    long n2,n3,n4,num[10],s[10];
    int i,j;
    for(;age <= 21;age++)//对所有可能的年龄穷举 
    {
        i = 0;
        n2 = pow(age,2);
        n3 = pow(age,3);
        n4 = pow(age,4);
        for(j = 0; j <= 9; j++){
            s[j]=0;
            num[j]=0;
        }
        while(n3 != 0)//把年龄的3次方的各个数字存到数组 
        {
            num[i++] = n3 % 10;
            n3 /= 10;
        }
        while(n4 != 0)//把年龄的4次方的各个数字存到数组
        {
            num[i++] = n4 % 10;
            n4 /= 10;
        }
    
        for(j = 0; j <= i; j++){//统计上面数组中各个数字出现的个数 
            s[num[j]]++;
        }
        bool found=true;
        for(i = 0; i <= 9; i++)//判断有无重复数字 
        {
            if(s[i] != 1) {
                found=false;
            }
        }
        if(found)//表示前面的数字都出现过一次才执行 
            printf("the number is %d",age);
    }
    return 0;
}

剑栈风樯各苦辛,别时冰雪到时春
2018-02-21 19:09
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:0 
以下是引用木下瞳在2018-2-21 18:28:03的发言:

#include<stdio.h>
#include<math.h>
int main(){
    int age = 10;
    long n2,n3,n4,num[10],s[10];
    int i;
    for(;age <= 21;age++)//对所有可能的年龄穷举
    {
        i = 0;
        n2 = pow(age,2);
        n3 = pow(age,3);
        n4 = pow(age,4);
        while(n3 != 0)//把年龄的3次方的各个数字存到数组
        {
            num = n3 % 10;
            n3 /= 10;
        }
        while(n4 != 0)//把年龄的4次方的各个数字存到数组
        {
            num = n4 % 10;
            n4 /= 10;
        }
        for(i = 0;i <= 9;i++)//统计上面数组中各个数字出现的个数
            s[num]++;
        for(i = 0;i <= 9;i++)//判断有无重复数字
        {
            if(s == 1)//如果出现的次数为1
            {
                if(i == 9)//表示前面的数字都出现过一次才执行
                    printf("the number is %d",age);
            }else
                break;
        }
    }
}

数组下标越界, 初始化操作遗漏

剑栈风樯各苦辛,别时冰雪到时春
2018-02-21 19:10
木下瞳
Rank: 1
等 级:新手上路
帖 子:37
专家分:6
注 册:2017-9-24
收藏
得分:0 
回复 4楼 林月儿
#include<stdio.h>
#include<math.h>
int main(){
    int age = 10;
    long n2,n3,n4,num[11],s[11];
    int i,j,k;
    for(;age <= 21;age++)//对所有可能的年龄穷举
    {
        i = 0;
        n2 = pow(age,2);
        n3 = pow(age,3);
        n4 = pow(age,4);
        while(n3 != 0)//把年龄的3次方的各个数字存到数组
        {
            num[i++] = n3 % 10;
            n3 /= 10;
        }
        while(n4 != 0)//把年龄的4次方的各个数字存到数组
        {
            num[i++] = n4 % 10;
            n4 /= 10;
        }
        for(j = 0;j <= i;j++)//统计上面数组中各个数字出现的个数
            s[num[j]]++;
        for(k = 0;k <= i;k++)//判断有无重复数字
        {
            if(s[k] == 1)//如果出现的次数为1
            {
                if(k == 9)//表示
                    printf("the number is %d",age);
            }else{
                break;
            }
               
        }
    }
}
下标怎么越限了?存10个数啊。初始化这样改了呢?
2018-02-21 19:28
李晨经纪人
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:6
帖 子:175
专家分:848
注 册:2018-2-14
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<math.h>
int main(){
    int age = 10;
    long n2,n3,n4,num[10],s[10];
    int i;
    for(;age <= 21;age++)//对所有可能的年龄穷举 
    {
        for(i=0;i<10;++i)    //每次循环都重新给计数数组赋值
            s[i]=0;
        i = 0;
        
        n2 = pow(age,2);
        n3 = pow(age,3);
        n4 = pow(age,4);
        if(n4<100000)        //少了这句存在越界的问题。
            continue;
        while(n3 != 0)//把年龄的3次方的各个数字存到数组 
        {
            num[i++] = n3 % 10;
            n3 /= 10;
        }
        while(n4 != 0)//把年龄的4次方的各个数字存到数组
        {
            num[i++] = n4 % 10;
            n4 /= 10;
        }
        for(i = 0;i <= 9;i++)//统计上面数组中各个数字出现的个数 
            s[num[i]]++;
        for(i = 0;i <= 9;i++)//判断有无重复数字 
        {
            //if(s[i] == 1)//如果出现的次数为1 
            //{
              //  if(i == 9)//表示前面的数字都出现过一次才执行 
                //    printf("the number is %d",age);
            //}else
            if(s[i]!=1)
                break;
        }
         if(i == 10)//表示前面的数字都出现过一次才执行 
                printf("the number is %d",age);
    }
}
2018-02-21 19:52
木下瞳
Rank: 1
等 级:新手上路
帖 子:37
专家分:6
注 册:2017-9-24
收藏
得分:0 
谢谢
2018-02-21 21:40
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
最近接触了一些梵高式数学,用那个思想我来简单说说~

你知道年龄的平次方的意义是什么?~

在自然界里面,线段平方的意义是面,立方的意义是一个立方体,那四次方的意义呢~

这条题把年龄相乘的数理逻辑就乱套了,就是没有实际意义~

其实这就是一个数理逻辑游戏,很多时候往往在追求某些题目的新颖性往往会忽略其意义本身何在,不知道做多了这种题目会形成思维障碍还是提高了编程能力,或者说为了提高编程能力而形成了思维障碍这样到底值不值得~

当然这只是用另一个角度看问题,并不代表什么,看看就可以了,没啥必要去记着那么多~

其实,我是来吃瓜的,就是这样~


[此贴子已经被作者于2018-2-22 16:38编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-02-22 16:37
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 8楼 九转星河
以下是引用九转星河在2018-2-22 16:37:25的发言:

你知道年龄的平次方的意义是什么?~


其实我也可以反过来说,那个意思是说是年龄这个数,而不是年龄本身,这个数本来就是一种逻辑存在,存不存在实际意义已经不大了,可以说这是自己根据某逻辑关系创造的某种表达规则,其意义可以说并不是实际意义而是一种指导思维的方法~这题要说意义本来就在思维指导方法上面,然而用这种方法来认识这个世界,仅是而已~



[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-02-22 16:47
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 9楼 九转星河
以下是引用九转星河在2018-2-22 16:47:18的发言:



其实我也可以反过来说,那个意思是说是年龄这个数,而不是年龄本身,这个数本来就是一种逻辑存在,存不存在实际意义已经不大了,可以说这是自己根据某逻辑关系创造的某种表达规则,其意义可以说并不是实际意义而是一种指导思维的方法~这题要说意义本来就在思维指导方法上面,然而用这种方法来认识这个世界,仅是而已~


@九转星河

但是这指导意义是通过自己建立数理逻辑关系本身的,这个和本来的意义符合吗?~我们只是在创造一种可以认识这个世界的方法,是用自己的思维体系来认识世界,但不同的思维体系所认识的世界却是千差万别的~

就例如我们看到的世界和别的动物看到的世界相同吗?显然不相同因为它们的思维体系和我们人类不一样,我们看到的只是眼前的东西,而不是这个东西的"质"本身~

平时我们所说的"耳听为虚,眼见为实"意思就是说我们是通过看到的东西来感知这个世界的,但按照上述说法,眼见也是虚的,我们看到的东西本质和这个东西的本质是两回事,就像色盲看到的东西不同而已,然而,我们看到的东西和我们对这个东西的认知也是两个回事,同一样东西,不同的人看到的东西是不一样的,"这个世界上没有两片相同的叶子"就是这个意思,叶子本来就没有相同与不同之分别,有的只是相同与不同这个本身的概念而已,但这个概念的"质"是什么?何谓相同,何谓不同?~这个就不是量化的问题了,而是一个抽象的概念~

这样还可以延伸很多东西,这里就不再一一论述了,我所说的或者已经和题目本身无关,但有关的却不是题目本身这么简单了,我就是对你刚刚所说的提出看法而已,至于这么样你知道的,好了,点到为止~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-02-22 16:59
快速回复:一个同学的年龄的平方是三位数,立方四个四位数,四次方是个六位数,三 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019266 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved