求正负数交互序列的和的MFC版
Posted bcbobo21cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求正负数交互序列的和的MFC版相关的知识,希望对你有一定的参考价值。
这是一道ACM基础题;
输入n,计算f(n) = - 1 + 2 - 3 + … + ( - 1)^n*n
问题分析:可使用列表法用数组存放结果,获取n后通过数组直接输出;或者分n为正数与负数两种情况讨论;
程序;
#include<stdio.h>
typedef long long LL;
int main()
LL n,sum=0;
scanf("%lld",&n);
if(n%2==0)
sum=n/2;
else
sum=(n-1)/2-n;
printf("%lld",sum);
return 0;
它是分两种情况就计算了;
先手算看一下;
f(n) = - 1 + 2 - 3 + … + ( - 1)^n*n
(-1)^4*4 = 4
f(4) = -1 + 2 - 3 +4 = 2
(-1)^5*5 = -5
f(5) = -1 + 2 - 3 +4 -5 = -3
(-1)^6*6 = 6
f(6) = -1 + 2 - 3 +4 -5 + 6 = 3
(-1)^7*7 = -7
f(7) = -1 + 2 - 3 +4 -5 + 6 - 7 = -4
(-1)^11*11 = -11
f(11) = -1 + 2 - 3 +4 -5 + 6 - 7 + 8 - 9 + 10 - 11 = -6
MFC做一下;对话框工程;
void CzfDlg::OnBnClickedButton1()
// TODO: 在此添加控件通知处理程序代码
int n,sum=0;
CString strn, strsum;
GetDlgItem(IDC_EDIT1)->GetWindowTextW(strn);
n = _ttoi(strn);
if(n%2==0)
sum=n/2;
else
sum=(n-1)/2-n;
strsum.Format(_T("%d"), sum);
SetDlgItemText(IDC_EDIT2,strsum);
运行;
以上是关于求正负数交互序列的和的MFC版的主要内容,如果未能解决你的问题,请参考以下文章
剑指Offer(Java版)第三十五题:给一个数组,返回它的最大连续子序列的和
输入一个整形数组,数组里有正数也有负数。 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)
输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为O(n)