3.1w+
社区成员
题目1:
源代码如下:
原来还可以使用函数来解决问题,让我明白了函数的重要性
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int arr(int x)
{
int i;
for (i = 2; i <= sqrt(x); i++)
{
if (x % i == 0)
{
return 0;
break;
}
}
return 1;
}
int main(void)
{
long sum = 0;
long m = 0;
long i;
for (i = 2; ; i++)
{
if (arr(i))
{
sum++;
}
if (sum == 100002)
{
m = i;
printf("%ld\n", m);
break;
}
}
return 0;
}
完成截图如下:
题目2
源代码如下:
这个是超时的......不过自己真的不会其他方法
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/*
由于自己不是很会使用其他的方法,于是使用了暴力,用10层循环来解决问题
*/
int main(void)
{
int a, b, c, d, e, f, g, h, i, m;
int sum = 0;
for (a = 1; a < 11; a++)
{
for (b = 1; b < 11; b++)
{
for (c = 1; c < 11; c++)
{
for (d = 1; d < 11; d++)
{
for (e = 1; e < 11; e++)
{
for (f = 1; f < 11; f++)
{
for (g = 1; g < 11; g++)
{
for (h = 1; h< 11; h++)
{
for (i = 1; i< 11; i++)
{
for (m = 1; m < 11; m++) {
if (a+1!=b&&b+1!=c&&c+1!=d&&d+1!=e&&e+1!=f&&f+1!=g&&g+1!=h&&h+1!=i&&i+1!=m&& //题目要去每一个不能相邻,所以不能让后面的那一项等于前面的一项加一
a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i&&a!=m&& //再把元素可能相等的情况去掉
b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i&&b!=m&&
c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i&&c!=m&&
d!=e&&d!=f&&d!=g&&d!=h&&d!=i&&d!=m&&
e!=f&&e!=g&&e!=h&&e!=i&&e!=m&&
f!=g&&f!=h&&f!=i&&f!=m&&
g!=h&&g!=i&&g!=m&&
h!=i&&h!=m&&i!=m&&a-1!=b&&b-1!=c&&c-1!=d&&d-1!=e&&e-1!=f&&f-1!=g&&g-1!=h&&h-1!=i&&i-1!=m) //题目前面的也不能相邻
{
sum++;
}
}
}
}
}
}
}
}
}
}
}
printf("%d\n", sum);
return 0;
}
完成截图如下: