1.编程:统计1000以内素数个数。(素数判断写成一个独立于main的函数)。
#include <iostream>
#include <cmath>
using namespace std;
bool isPrime(int x)
{
if(x< 2) return false;
int k;
k= sqrt(double(x));
for(int i= 2; i<= k; i++)
{
if(x%i==0) return false;
if(i>=k+1) return true;
}
}
int main()
{
int j= 0;
printf("1000以内的素数有如下:\n\n");
for(int i=2;i<=1000;i++)
{
if(isPrime(i))
{
printf("%d ,", i);
j= j+ 1;
}
}
putchar('\n');
printf("1000以内的素数有如上%d个!", j);
return 0;
}
2.数组通过for循环存放数值,及取出对应位置存放的值。
#include <stdio.h>
int main()
{
int i;
int a[2019]={};
for(i= 1; i<= 2019; i++)
{
a[i]= i;
}
printf("%d", a[2018]);
return 0;
}
3.阶乘(循环算法)
#include <stdio.h>
long fact(int x);
long fact(int x)
{
long result;
for(result= 1; x> 0; x--)
{
result*= x;
}
return result;
}
int main()
{
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d的阶乘是:%d", num, fact(num));
return 0;
}
4.阶乘(递归法)
#include <stdio.h>
long fact(int x);
long fact(int x)
{
long result;
if(x> 0)
{
result= x* fact(x- 1);
}
else
{
result= 1;
}
return result;
}
int main()
{
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
printf("%d的阶乘是:%d", num, fact(num));
return 0;
}