zoukankan      html  css  js  c++  java
  • C# 求奇数和偶数和

    例如,给出一个数字5,奇数和则为1+3+5=9。偶数和则为2+4=6。第一种是简单的算法,第二种是改进后,时间复杂度为1的算法。

    View Code
            static void SumMath(int n, ref int sumOdd, ref int sumEven)
            {
                if (n >= 0)
                {
                    for (int i = 1; i <= n; i += 2)
                    {
                        checked
                        {
                            sumOdd += i;
                        }
                    }
                    Console.WriteLine("Sum of odd num is " + sumOdd);
                    for (int i = 2; i <= n; i += 2)
                    {
                        checked
                        {
                            sumEven += i;
                        }
                    }
                    Console.WriteLine("Sum of even num is " + sumEven);
                }
                else
                {
                    for (int i = -1; i >= n; i -= 2)
                    {
                        checked
                        {
                            sumOdd += i;
                        }
                    }
                    Console.WriteLine("Sum of odd num is " + sumOdd);
                    for (int i = -2; i >= n; i -= 2)
                    {
                        checked
                        {
                            sumEven += i;
                        }
                    }
                    Console.WriteLine("Sum of even num is " + sumEven);
                }
    
            }
    
            static void SumMath2(int n, ref int sumOdd, ref int sumEven)
            {
                int sign = 1;
                if (n < 0)
                {
                    n = n * -1;
                    sign = -1;
                }
    
                int sum = n * (n + 1) / 2;
                if (n % 2 == 1)
                {
                    checked
                    {
                        sumOdd = (sum + (n + 1) / 2) / 2 * sign;
                        sumEven = (sum - (n + 1) / 2) / 2 * sign;
                    }
                    Console.WriteLine("Sum of odd num is " + sumOdd);
                    Console.WriteLine("Sum of even num is " + sumEven);
                }
                else
                {
                    checked
                    {
                        sumOdd = (sum - n / 2) / 2 * sign;
                        sumEven = (sum + n / 2) / 2 * sign;
                    }
                    Console.WriteLine("Sum of odd num is " + sumOdd);
                    Console.WriteLine("Sum of even num is " + sumEven);
                }
            }
  • 相关阅读:
    yii模板中常用变量总结
    Yii CDbCriteria的常用方法总结
    Yii框架Yiiapp()的理解
    Yii 中比较常用的rules验证规则记录
    c++,opencv播放视频
    python--输入一组无序的数,排序
    python入门,猜数
    关于爬楼梯问题的斐波那契数列
    获取文件名字,路劲中的某一部分信息
    简单帧差法
  • 原文地址:https://www.cnblogs.com/Ligeance/p/2814613.html
Copyright © 2011-2022 走看看