今天在csdn上看到这么一个问题:
从1到100,100个数字相加,和为100的算法,可以1位,2位,3位等,不限位数相加,数字不能重复,可以有多少种算法,并把代码贴出;
可以这样:
        1 + 99;
        2 + 98;
也可以这样:
        1 + 2 + 97;
更可以这样:
        1 + 2 + 3 + 5 + 7 + 82;

随手用C#写了一下实现代码,部分结果如下:
...
1+2+3+4+5+6+7+8+9+10+14+15+16
1+2+3+4+5+6+7+8+9+11+12+13+19
1+2+3+4+5+6+7+8+9+11+12+14+18
1+2+3+4+5+6+7+8+9+11+12+15+17
1+2+3+4+5+6+7+8+9+11+13+14+17
1+2+3+4+5+6+7+8+9+11+13+15+16
1+2+3+4+5+6+7+8+9+12+13+14+16
1+2+3+4+5+6+7+8+10+11+12+13+18
1+2+3+4+5+6+7+8+10+11+12+14+17
1+2+3+4+5+6+7+8+10+11+12+15+16
1+2+3+4+5+6+7+8+10+11+13+14+16
1+2+3+4+5+6+7+8+10+12+13+14+15
1+2+3+4+5+6+7+9+10+11+12+13+17
1+2+3+4+5+6+7+9+10+11+12+14+16
1+2+3+4+5+6+7+9+10+11+13+14+15
1+2+3+4+5+6+8+9+10+11+12+13+16
1+2+3+4+5+6+8+9+10+11+12+14+15
1+2+3+4+5+7+8+9+10+11+12+13+15
1+2+3+4+6+7+8+9+10+11+12+13+14
Start Time:     2006-9-5 10:53:24
End Time:       2006-9-5 10:58:39
Total Time:     00:05:14.3906250
Total Count:    444792

如果不输出式子,结果如下:
Start Time:     2006-9-5 11:01:13
End Time:       2006-9-5 11:01:14
Total Time:     00:00:01.8750000
Total Count:    444792

完整代码如下:

/**////jailusd@hotmail.com
///2006-09-05


using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;


namespace OneToHundred
{
    class Program
    {
        static ArrayList alFormula = new ArrayList();
        static string strTempFormula;

        static void Main(string[] args)
        {
            DateTime dtStart = DateTime.Now;

            AddFormula("",1,100);

            for (int i = 0; i < alFormula.Count; i++)
            {
                string strTemp = alFormula[i].ToString();
                string[] str = strTemp.Split("+".ToCharArray());

                strTemp = strTemp.Substring(0, strTemp.Length - str[str.Length - 1].ToString().Length);

                AddFormula(strTemp, int.Parse(str[str.Length - 2]) + 1, int.Parse(str[str.Length - 1]));
            }

            DateTime dtEnd = DateTime.Now;

            TimeSpan ts = DateTime.Now.Subtract(dtStart);
            double count= ts.TotalMilliseconds;

            Console.WriteLine("Start Time:\t" + dtStart);
            Console.WriteLine("End Time:\t" + dtEnd);
            Console.WriteLine("Total Time:\t" + ts);
            Console.WriteLine("Total Count:\t" + alFormula.Count);
            Console.ReadLine();
        }

        static void AddFormula(string Formual,int Start, int End)
        {
            int intTemp = (int)Math.Round((double)(End / 2));

            if (End % 2 != 0)
            {
                intTemp += 1;
            }

            for (int i = Start; i < intTemp; i++)
            {
                strTempFormula = Formual + i.ToString() + "+" + (End - i).ToString();
                //Console.WriteLine(strTempFormula);    //显示每个满足条件的式子
                alFormula.Add(strTempFormula);
            }
        }
    }
}

一个关于从1到100的加法算法相关推荐

  1. Java黑皮书课后题第3章:3.10(游戏:加法测试)程序清单3-3随机产生一个减法问题。修改这个程序,随机产生一个计算两个小于100的整数的加法问题

    3.10(游戏:加法测试)程序清单3-3随机产生一个减法问题.修改这个程序,随机产生一个计算两个小于100的整数的加法问题 题目 题目概述 参考:程序清单3-3 代码 题目 题目概述 3.10(游戏: ...

  2. XYNUOJ : 100以内加法计算

                                                  1757: 100以内加法计算 时间限制: 1 Sec  内存限制: 128 MB 题目描述 胡八一今年3岁 ...

  3. Java:100以内加法练习程序!

    问题:设计一个循环六次计算100以内两位数加法的运算程序,统计计算次数跟正确数并打印输出,并且计算出该程序运行的时间以秒为单位打印输出! 代码: package wangke; import java ...

  4. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?...

    代码: package com.liron.p1; /*** 一个整数,它加上100后是一个完全平方数,再加上168又是* 一个完全平方数,请问该数是多少?* */ public class Topi ...

  5. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少...

    一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 /*** 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少* * @a ...

  6. 取到小数后三位_小数名师工作室 数学实验 || 一个小数乘10、100、1000……的计算规律...

    一个小数乘10.100.1000--的计算规律 设计者简介 方长梅 扬州市甘泉小学 扬州市中青年教学骨干 实验视频 实验目的 由观察一个小数乘10引起的小数点位置变化现象引发猜想,再通过举例.类比.推 ...

  7. 在10000以内判断一个整数,它加上100和加上268后都是一个完全平方数 3 提问:请问该数是多少?...

    1 ''' 2 在10000以内判断一个整数,它加上100和加上268后都是一个完全平方数 3 提问:请问该数是多少? 4 ''' 5 import math 6 for i in range(100 ...

  8. 一个C++工程CPU占用100%问题的排查

    最近遇到一个 C++ 工程CPU占用100%的问题,经过排查,发现原来是不再使用的代码片段的问题,本文记录了排查的过程,并给出示例代码片段. 发现问题 某日,运维反馈生产环境某台设备出现问题,某个进程 ...

  9. 萌新的Python练习实例100例(三)一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数

    题目: 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 分析: 根据题目得出: 整数x²=i+100,y²=i+100+168 采用for in 遍历为i ...

最新文章

  1. SLF4J: Failed to load class org.slf4j.impl.StaticLoggerBinder.
  2. mochawesome如何合并测试报告_Vue项目采用Cypress做e2e自动化测试,手把手一撸到底...
  3. python向服务器请求压缩数据及解压缩数据
  4. 软件测试之python面试题_常见Python面试题整理带答案
  5. NYOJ--22--素数求和问题
  6. 从零基础入门Tensorflow2.0 ----六、29keras_generator读取 kaggle 10 monkeys数据
  7. 分享六:php脚本守护进程
  8. 会声会影2020试用版如何激活序列号正式版及快速零基础剪辑教程
  9. 把FIL放在哪里最值钱
  10. 在Mac上使用android studio调试android手机
  11. “走进名企”——微软亚洲研究院
  12. iOSApp是如何启动的
  13. VLOOKUP常见错误及解决办法
  14. 【MySQL】MySQL 的连接(内、左、右、全)
  15. 李想的理想 IPO :新造车「异类」背后的思考
  16. python-pygame与pymunk-台球游戏
  17. 数理逻辑——ND系统
  18. Unity_飘伤害_053
  19. 保持忠贞是不容易的,需要持续付出努力
  20. 2022熔化焊接与热切割考试模拟100题及在线模拟考试

热门文章

  1. python列表求和显示unsupport_本地使用pip命令安装requests库,提示unknow or unsupported command install解决方法...
  2. springcloud架构特点_你想了解的「Spring Cloud」都在这里
  3. java utf8 简繁转换 类库_Java封装简体繁体(香港台湾)转换工具
  4. pytorch GPU
  5. Java SSM 与 SpringBoot
  6. java 屏幕键盘io
  7. Flask Jinja2模板
  8. php判断是否为数字_PHP知识点:从'xulei' == 0是否为真谈谈运算符===和==
  9. Kubernetes学习总结(4)——Kubernetes v1.20 重磅发布 | 新版本核心主题 主要变化解读
  10. Maven学习总结(43)——利用javadoc插件生成项目的API文档