7-1 判断素数

本题的目标很简单,就是判断一个给定的正整数是否素数。

输入格式:

输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2^31的需要判断的正整数。

输出格式:

对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No

输入样例:

2
11
111

输出样例:

Yes
No

 源码:

#include<bits/stdc++.h>
using namespace std;
int fun(int n);
int main()
{
	int a, i, n;
	cin>>a;
	for (i = 0; i < a; i++)
	{
		cin>>n;
		if (fun(n))
			{
			    cout<<"Yes"<<endl;
			}
		else
			{
			    cout<<"No"<<endl;
			}
	}
	return 0;
}

int fun(int n)
{
	int i;
	if (n == 1)
	{
		return 0;
	}
	for (i = 2; i <= sqrt(n); i++)
	{
		if (n%i == 0)
		{
			return 0;
		}
	}
	return 1;
}

7-2 计算圆柱体的体积

输入圆柱的高和半径,求圆柱体积,volume=π×r2×h 。要求定义和调用函数cylinder (r, h )计算圆柱体的体积。

输入格式:

输入在一行中给出2个实数,分别为半径r和高h。

输出格式:

在一行中以“Volume = 值”的形式输出圆柱体的体积,结果保留三位小数。

输入样例:

3.0 10

输出样例:

Volume = 282.743

源码: 

#include<bits/stdc++.h>
using namespace std;
double cylinder ( double r , double h );
int main()
{
	double r, h, v;
	cin>>r>>h;
	v = cylinder(r,h);
	printf ( "Volume = %.3f" , v);
	return 0;
}
double cylinder ( double R , double H )
{
	double result;
	result = 3.1415926 * R * R * H;
	return result;
}

7-3 函数的嵌套调用

求三个数中最大数与最小数的和。要求:编写三个函数;一个函数实现求3个数中最大数;另一个函数实现求3个数中最小数;第3个函数调用前两个函数,实现求最大数与最小数的和。

输入格式:

给3个变量赋值。

输出格式:

输出最大数与最小数的和。按格式“Max+Min=”的格式输出。

输入样例:

1 -24 20

输出样例:

Max+Min=-4

 源码:

#include<bits/stdc++.h>
using namespace std;
int Max(int a,int b,int c);
int Min(int a,int b,int c);
int Sum(int a,int b,int c)
{
    return Max(a,b,c)+Min(a,b,c);
}
int main()
{
    int a,b,c;
    cin>>a>>b>>c;
    cout<<"Max+Min="<<Sum(a,b,c);
    return 0;
}
int Max(int a,int b,int c)
{
    int maxn=a;
    if(b>maxn) maxn=b;
    if(c>maxn) maxn=c;
    return maxn;
}
int Min(int a,int b,int c)
{
    int minn=a;
    if(b<minn) minn=b;
    if(c<minn) minn=c;
    return minn;
}

7-4 递归实现逆序输出整数

本题目要求读入1个正整数n,然后编写递归函数reverse(int n)实现将该正整数逆序输出。

输入格式:

输入在一行中给出1个正整数n。

输出格式:

对每一组输入,在一行中输出n的逆序数。

输入样例:

12345

输出样例:

54321

 源码:

#include<bits/stdc++.h>
using namespace std;
void reverse(int n)
{
	int m;
	while(n != 0)
    {
		m = n % 10;
		n = n / 10;
		cout<<m;
	}
}
int main()
{
	int n;
	cin>>n;
	reverse(n);
	return 0;
}

7-5 函数的递归调用

有n个人坐在一起,第n个人比第n-1个人大2岁,第n-1个人比第n-2个人大2岁,以此类推,……,第1个人是10岁。请问第n个人年龄多大?

输入格式:

输入一个整数表示第几个人。

输出格式:

输出第n个人是m岁。

输入样例:

5

输出样例:

Number 5 is 18 age!

源码: 

#include<bits/stdc++.h>
using namespace std;
int age(int n)
{
	int m = 10;
	if (n == 1)
	{
		return m;
	}
	else
	{
		return 2 + age(n - 1);
	}
}
int main()
{
	int n;
	cin>>n;
	printf("Number %d is %d age!", n, age(n));
	return 0;
}

 

更多推荐

程序设计基础(函数)