| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2130 人关注过本帖
标题:急!请大家帮忙这道算法题!
只看楼主 加入收藏
寻帮助
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-4-3
收藏
 问题点数:0 回复次数:1 
急!请大家帮忙这道算法题!
总共三个问题。我用 Swift 完成了第一个。第二和第三请帮忙。您也可以用其它语言,请说明算法。


1. 整数 1 到 500, 给出每个数所有位数平方的和。 比如 (1, 1), (2, 4),(12, 5),(500, 25);
2. 找出所有这样的数:求和的这个方法 getSumOfDigits 运行多次后 (把运行结果输进去再运算),结果是 1. 比如1, 7, 10 。。。。
3. 找出 1 到 1 千万 之间这样的数, getSumOfDigits 运行 7 次以上,结果是 89.

func getSumOfDigits(n: Int) -> Int {

        let nString = String(n)
        var sum: Int = 0

        for char in nString {
            if let charInt = Int(String(char)) {
                sum += charInt * charInt
            }
        }

        return sum
    }

    func questionOne() -> [(Int, Int)] {

        var output: [(Int, Int)] = []

        for i in 1...500 {
            output.append((i, getSumOfDigits(n: i)))
        }

        return output
    }

多谢啦!
搜索更多相关主题的帖子: 算法 sum 结果 Int output 
2019-04-03 02:37
qrezhy
Rank: 1
等 级:新手上路
帖 子:9
专家分:5
注 册:2019-3-30
收藏
得分:0 
本人刚学,不足之处请见谅
第一问,public class test {
    public static void main(String[] args) {
        for (int i = 0; i <= 500; i++) {
            int a = i % 10;
            int b = i / 10 % 10;
            int c = i / 100 % 10;
            int sum = 0;
            sum = a * a + b * b + c * c;
            System.out.println(i+","+sum);




第二问,public class test {
    public static void main(String[] args) {
        for (int i = 0; i <= 500; i++) {
            int a = i % 10;
            int b = i / 10 % 10;
            int c = i / 100 % 10;
            int sum = 0;
            sum = a * a + b * b + c * c;
            if (sum != 1) {
                for (int j = 0; j <= 5000; j++) {
                    int d = sum % 10;
                    int e = sum / 10 % 10;
                    int f = sum / 100 % 10;
                    sum = d * d + e * e + f * f;
                    if (sum == 1) {
                        System.out.println(i);
                        break;
                    }
                }
            } else {
                System.out.println(i);
            }
        }
    }
}


第3问,只要是89无限循环了,所以和次数没关系

2019-04-18 15:15
快速回复:急!请大家帮忙这道算法题!
数据加载中...
 
   



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

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