微软公司面试题【1】

来源:互联网 发布:java用正则表达式 编辑:程序博客网 时间:2024/04/30 08:09

            这道题挺简单的,但网上说,这是微软的面试题,初学编程的可以看看。

            题目:

                求质数的和。如:F(4)= 2+3+5+7 = 17,输入F(x)。

                 运行结果:

                 

                自己敲的代码:

                 

#include<iostream>using namespace std;int num[100];  //全局数组,用来存放质数int sum = 0;       //全局变量,求质数的和//求解质数函数//--------------------------------------void Get_prime(int n)  //参数:求解质数的个数{int temp;   //指标变量int k = 0;    //计数器,当k达到n的时候停止求解for(int i=2;;i++) {temp = 0; //初始指标为0for(int j=2;j<i;j++){           if(i%j==0)   {   temp=1; //若出现整除,非质数,指标为1   }}if(temp==0 || i==2)//2单独判断输出,如果从未出现整除,指标变量为初始值0,是质数,输出{num[k] = i;   //将质数依次存放在全局数组里面k++;        //k既作为计数器,又作为数组下标}elseif(k == n)    //当k==n,求解结束,退出函数return;elsecontinue;}}//----------------------------------//求质数和函数int Get_p_sum(int n)    //参数:质数个数{int sum = 0;        for(int i=0; i<n; i++){sum = sum+num[i];}return sum;         //返回和sum}//------------------------------------//格式输出函数(有格式比较美观)void Out_result(int n){cout<<endl<<"F("<<n<<")"<<" =";for(int i=0; i<n; i++){if(i == n-1){cout<<" "<<num[n-1]<<" = "<<sum<<endl;}elsecout<<" "<<num[i]<<" +";}cout<<endl;}//----------------------------------//主函数int main(){int n;while(1){cout<<"F(x) Input x = ";cin>>n;Get_prime(n);          //调用质数求解函数sum = Get_p_sum(n);    //调用求和函数Out_result(n);         //调用输出函数}return 0;}