在网上看到了一些微软的笔试题,第一遍的做错了很多,自己就试着编程实现,其实是一些简单的题目。
下面这道:连续整数之和为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; }
程序写出来了,但只是写出来了,大家凑合着看吧,希望大家多交流!