微软公司面试题【1】

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

            题目:

                求质数的和。如: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; //初始指标为0
		for(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既作为计数器,又作为数组下标
		}
		else
			if(k == n)    //当k==n,求解结束,退出函数
				return;
			else
			continue;
	}

}
//----------------------------------
//求质数和函数
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;
		}
		else
		cout<<" "<<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;
}

                 

                 

                

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值