lustalen 发表于 2010-3-5 15:05

编程练习:1+2-3+4+5-6+7+8-9+10+.....+100

本帖最后由 lustalen 于 2010-3-5 15:09 编辑

题目:写一个程序,求出1+2-3+4+5-6+7+8-9+10+.....+100的值,语言不限。

这是我前些天出的一道面试题,居然有3个面试的程序员做不出来。贴上来给编程新手练习一下,高手就不用练了,呵呵。:lol

vienna 发表于 2010-3-5 15:23

#include <iostream>

int main(){
        int x,y = 0;       

        for (x = 0;x <=100;++x) {
                if (x%3){
                        y += x;
                }else{
                        y -= x;
                }
        }
        std::cout << y << std::endl;
}

楼主放个答案吧,都不知道算的对不

czjh2008 发表于 2010-3-5 15:47

高手过招,占位观看……

zapline 发表于 2010-3-5 16:12

:rggrg这个还有3个人做不出来

小鹰 发表于 2010-3-7 15:40

很简单的一个小题
VB编码如下
Private Sub Command1_Click()
Dim x, y
For x = 1 To 100
y = y + x
Next x
Command1.Caption = y
End Sub

1144110 发表于 2010-3-7 16:07

.版本 2

.程序集 窗口程序集1
.程序集变量 变量, 整数型
.程序集变量 计数, 整数型

.子程序 _按钮1_被单击

.判断循环首 (变量 ≤ 100)
    变量 = 变量 + 1
    计数 = 计数 + 变量
.判断循环尾 ()
编辑框1.加入文本 (到文本 (计数))
————————————————————
晕死图片不会发

天涯浪子1988 发表于 2010-3-7 22:33

新手刚学c++,不怎么会,来点猥琐的:$qqq
#include <iostream>
using namespace std;
int main()
{
int a=0,b=0,c;
for(int i=0;i<=100;i++)
a+=i;
for(int j=0;j<=100;j+=3)
b+=j;
c=a-2*b;
cout<<"1+2-3+4+5-6+7+8-9+10+.....+100="<<c<<endl;
return 0;
}


二楼的代码很巧妙

leolee82 发表于 2010-3-8 19:28

cout<<"1+2-3+4+5-6+7+8-9+10+.....+100="<<(1+100)*100/2-2*(3+99)*33/2<<endl;

ufo02238 发表于 2010-3-8 22:52

:funk:eweqw,我像在看天书。。。菜鸟别见怪

roxiel 发表于 2010-3-9 09:50

2

本帖最后由 roxiel 于 2010-3-10 16:39 编辑

int sum=0;
for(int i=0;i<97;i+=3)
{   
    sum+=i;
}
cout<<sum+100<<endl;

这个我写脑残了,光顾着排列了,最后是小于97。。。。

思路:
1+2-3            0
4+5-6            3
7+8-9            6
10+11-12      9
。。。                                 
97+98-99       96


int sum=0;
for(int i=1;i<100;i+=6)
{
sum=sum+i*2+1;
}
cout<<sum+1<<endl;

这个没错
:
   1+2-3+4+5-6                =1+2+1-1
7 +8- 9+10+11-12      = 7+8+1-1
。。。
97+98               97+98

-99+100
页: [1] 2 3 4 5
查看完整版本: 编程练习:1+2-3+4+5-6+7+8-9+10+.....+100