微软笔试题编程实现

在网上看到了一些微软的笔试题,第一遍的做错了很多,自己就试着编程实现,其实是一些简单的题目。

下面这道:连续整数之和为1000的共有几组?

答案分析是这样的:首先1000为一个解。连续数的平均值设为x,1000必须是x的整数倍。 假如连续数的个数为偶数个,x就不是整数了。x的2倍只能是5,25,125才行。因为平均值为12.5,要连续80个达不到。125/262.5是可以的。即62,63,61, 64,等等。连续数的个数为奇数时,平均值为整数。1000为平均值的奇数倍。 我是应届生 10002×2×2×5×5×5;x可以为2,4,8,40,200排除后剩下40和200是 可以的。所以答案为平均值为62.5,40,200,1000的4组整数。  

我没有仔细研究,就试着写了程序出来。 

#include <iostream>

using namespace std;

int main()
{
    const int Sum=1000;
    int initalNum=0;
    int count=0;
    for (int i=1;i<=Sum;i++)
    {
        initalNum=0;
        count=0;
        for (int j=i;j<=Sum;j++)
        {
            initalNum+=j;
            count++;
            if (initalNum==Sum)
            {
                cout<<"总共有:"<<count<<"个数"<<"    "<<endl;
                cout<<"分别是:"<<endl;
                for (int k=j;k>j-count;k--)
                {
                    cout<<k<<"    "<<endl;
                }
                break;
            }
            else if(initalNum<Sum)
            {
                continue;
            }
            else
            {
                break;
            }
        }
    }
    system("pause");
    return 0;
}

 

程序写出来了,但只是写出来了,大家凑合着看吧,希望大家多交流!

posted @ 2012-09-01 20:52  ll2008  阅读(744)  评论(0编辑  收藏  举报