A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wanghuailin1030   /  2013-6-14 12:53  /  4287 人查看  /  29 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 wanghuailin1030 于 2013-6-14 22:44 编辑
陈壹 发表于 2013-6-14 14:10
static void Main(string[] args)
        {
            int n, m, sum = 0;


哦,你是先判断第一个数字,如果是偶数,则为负数开始想加,如果是奇数则是从正数开始加。严格按照公式来弄。
回复 使用道具 举报
wanghuailin1030 发表于 2013-6-14 22:19
大哥,这个不成,看你的楼上

我去 比我早发几秒,我这个是默认 最后是+M
回复 使用道具 举报
李云飞 发表于 2013-6-14 15:56
using System;
using System.Collections.Generic;
using System.Linq;

你的省却了正负分开计算,省却了判断正负,而是把-1的几次幂来规定正负想加。
回复 使用道具 举报
static void Main(string[] args)
        {
            Console.WriteLine("请输入一个正整数");
            int m = int.Parse(Console.ReadLine());

            int sum = 0;
            if (m % 2 == 1)
            {
                sum = (m + 1) / 2;
            }
            else
            {
                sum=(m / 2) * (-1);
            }
            Console.WriteLine("总和为{0}",sum.ToString());
            Console.ReadKey();
        }
回复 使用道具 举报
穆玉明 发表于 2013-6-14 19:40
using System;
using System.Collections.Generic;
using System.Linq;

这个高端
回复 使用道具 举报
胡章诚 发表于 2013-6-15 07:53
static void Main(string[] args)
        {
            Console.WriteLine("请输入一个正整数");

这个也不错,算法是之间没见过的
回复 使用道具 举报
aa26963 发表于 2013-6-14 16:44
不用循环吧,先取到表达式的最后一个字符m,转换成int型。
如果m是偶数,那么结果为m/2切为负的,应该是0-m ...

的确是这样耶,学习了!:handshake
回复 使用道具 举报
看了下楼上诸位的,感觉和我做的都大同小异,就10楼的方法让人耳目一新,学习了!
附上我的方法吧:
static void Main(string[] args)
        {

            int sum = 0;      //累加初始值
            int m, sign;       //m是最后结束的值,sign是每个数前面的符号
            Console.WriteLine("请输入m的值:");
            string str = Console.ReadLine();
            if (int.TryParse(str, out m) == true)
            {
                for (int i = 1; i <= m; i++)
                {
                    if (i % 2 == 0)       //如果该数为奇数,则符号sign=-1
                    {
                        sign = -1;
                    }
                    else               //为偶数时,sign=1
                    {
                        sign = 1;
                    }
                    sum += i * sign;           //累加
                }
            }
            else
            {
                Console.WriteLine("数字不合法!");
            }
            Console.WriteLine("该表达式的值是:{0}", sum);
                        //下面是我用10楼的方法尝试了一下
            if (m % 2 == 0)
            {
                sum = -m / 2;
            }
            else
            {
                sum = (m + 1) / 2;
            }
            Console.WriteLine("该表达式的值是:{0}", sum);

            Console.ReadKey();
            

        }
回复 使用道具 举报
孤帆破浪 发表于 2013-6-15 10:49
看了下楼上诸位的,感觉和我做的都大同小异,就10楼的方法让人耳目一新,学习了!
附上我的方法吧:
static ...

10楼的方法在24楼有代码实现,确实是耳目一新
回复 使用道具 举报
wanghuailin1030 发表于 2013-6-15 13:01
10楼的方法在24楼有代码实现,确实是耳目一新

呵呵!此楼有点多,后面的不是每一个都仔细看过。。。。。。
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马