算年龄

xiao哈哈哈 2017-03-16 02:29:43

标题:算年龄

英国数学家德摩根出生于19世纪初叶(即18xx年)。
他年少时便很有才华。一次有人问他的年龄,他回答说:
“到了x的平方那年,我刚好是x岁”。

请你计算一下,德摩根到底出生在哪一年。
题中的年龄指的是周岁。

请填写表示他出生年份的四位数字,不要填写任何多余内容。


public class age {
public static void main(String[] args){
for (int i = 1800; i < 1900; i++) {
for (int j = 0; j < 100; j++) {
if(i+j == j*j){
System.out.println(i+" "+j);
return;
}
}
}
}
}
...全文
543 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
csdn2014517 2017-03-16
  • 打赏
  • 举报
回复
引用 9 楼 qq_35209952 的回复:
[quote=引用 8 楼 csdn2014517 的回复:] [quote=引用 6 楼 qq_35209952 的回复:]

public class Age {
    public static void main(String[] args) {
        for (int x = 0; ; x++) {
            int y = x * x - x;
            if (y > 1830) {
                break;
            }
            if (y > 1800) {
                System.out.println(y + " " + x);
            }
        }
    }
}
大概这样..
1806 43 运行结果 程序不对[/quote] 不对吗... 额 你是拿去答题了? 那你把x去掉呀.. 我是自己测试方便才那样写的输出[/quote] 额是对的
引用 9 楼 qq_35209952 的回复:
[quote=引用 8 楼 csdn2014517 的回复:] [quote=引用 6 楼 qq_35209952 的回复:]

public class Age {
    public static void main(String[] args) {
        for (int x = 0; ; x++) {
            int y = x * x - x;
            if (y > 1830) {
                break;
            }
            if (y > 1800) {
                System.out.println(y + " " + x);
            }
        }
    }
}
大概这样..
1806 43 运行结果 程序不对[/quote] 不对吗... 额 你是拿去答题了? 那你把x去掉呀.. 我是自己测试方便才那样写的输出[/quote] 额 细想之下是对的
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复
引用 8 楼 csdn2014517 的回复:
[quote=引用 6 楼 qq_35209952 的回复:]

public class Age {
    public static void main(String[] args) {
        for (int x = 0; ; x++) {
            int y = x * x - x;
            if (y > 1830) {
                break;
            }
            if (y > 1800) {
                System.out.println(y + " " + x);
            }
        }
    }
}
大概这样..
1806 43 运行结果 程序不对[/quote] 不对吗... 额 你是拿去答题了? 那你把x去掉呀.. 我是自己测试方便才那样写的输出
csdn2014517 2017-03-16
  • 打赏
  • 举报
回复
引用 6 楼 qq_35209952 的回复:

public class Age {
    public static void main(String[] args) {
        for (int x = 0; ; x++) {
            int y = x * x - x;
            if (y > 1830) {
                break;
            }
            if (y > 1800) {
                System.out.println(y + " " + x);
            }
        }
    }
}
大概这样..
1806 43 运行结果 程序不对
xiao哈哈哈 2017-03-16
  • 打赏
  • 举报
回复
引用 5 楼 qq_35209952 的回复:
[quote=引用 4 楼 rong05151005 的回复:] 这道题这样说求出来是有两个正确答案,但是德摩根的出生日期只有一个
回复的时候记得点引用. 19世纪初叶. . 就当1800<x^2-x<1830吧.. 这种模棱两可的描述拿来做程序题目确实不太好. 算了 反正也就是无聊做一做.. 不用太当真.. 不过你这个外圈的循环是很危险的东西..不要写没意义的循环,要不然平白增加了一个数量级的时间复杂度 [/quote] 哦哦~刚学着用博客~尴尬
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复

public class Age {
    public static void main(String[] args) {
        for (int x = 0; ; x++) {
            int y = x * x - x;
            if (y > 1830) {
                break;
            }
            if (y > 1800) {
                System.out.println(y + " " + x);
            }
        }
    }
}
大概这样..
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复
引用 4 楼 rong05151005 的回复:
这道题这样说求出来是有两个正确答案,但是德摩根的出生日期只有一个
回复的时候记得点引用. 19世纪初叶. . 就当1800<x^2-x<1830吧.. 这种模棱两可的描述拿来做程序题目确实不太好. 算了 反正也就是无聊做一做.. 不用太当真.. 不过你这个外圈的循环是很危险的东西..不要写没意义的循环,要不然平白增加了一个数量级的时间复杂度
xiao哈哈哈 2017-03-16
  • 打赏
  • 举报
回复
这道题这样说求出来是有两个正确答案,但是德摩根的出生日期只有一个
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复
抱歉读错题目了.... “到了x的平方那年,我刚好是x岁”。 其实是求一个在18xx到1900之间的平方数. 首先是找到 1800<x^2<1900 然后 x^2 -x > 1800 就是这样的答案了... 你应该是漏掉了后面这个条件
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复
啊 好吧.. 你的程序是错的....................... 你这样只要有一个18xx的数字是一个数字的平方就会满足条件了...
逗泥丸的平方 2017-03-16
  • 打赏
  • 举报
回复
所以你要问什么 不过其实外圈循环是没必要的 . 你只要判断x^2 = 1800+x就好了 不是么

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧