计算并输出s的值。s的计算方法见下式,
其中m为实数,其值由键盘读入。计算时,要求最后一项的绝对值小于1e-4,输出结果保留两位小数。
输入格式:
实数m,格式控制串为"%lf"
输出格式:
式子的值,输出格式控制串为"%.2f\n"
输入样例:
0.2
输出样例:
0.18
时间限制:1000ms内存限制:32000kb
以每行8个的形式输出100-999内的质数。
输入格式:
无
输出格式:
每行输出8个质数(最后一行可以不到8个),每个质数的输出格式控制符为"%4d",最后一行输完后,输出一个"\n"
输入样例:
无
输出样例:
101 103 107 109 113 127 131 137
139 149 151 157 163 167 173 179
……
解法1(自定义函数)
#include <stdio.h>
#include<math.h>
int jiecheng(int a)
{
int d = a-1;
while (0<d)
{
a *= d;
d--;
}
return a;
}
int main()
{
double m = 0;
double s = 0;
double y = 0;
int i = 1;
scanf("%lf", &m);
while ((y = pow(m, i) )/ (jiecheng(i)) >= 1e-4)
{
s += pow(m, i) / (jiecheng(i) * pow(-1.0, i + 1));
if ((y = pow(m, i) / (jiecheng(i)) < 1e-4))
break;
i++;
}
printf("%.2f", s);
return 0;
}
解法2(巧妙有点难想到)
#include <stdio.h>
int main()
{
double m = 0;
double s = 0;
int i = 1;
int num = 1;
int sign = 1;
scanf("%lf", &m);
do{
i *= num;
s+=m/i*sign;
m *= m;
sign = -sign;
num++;
} while (m / i > 1e-4);
printf("%.2f", s);
return 0;
}
以每行8个的形式输出100-999内的质数。
输入格式:
无
输出格式:
每行输出8个质数(最后一行可以不到8个),每个质数的输出格式控制符为"%4d",最后一行输完后,输出一个"\n"
输入样例:
无
输出样例:
101 103 107 109 113 127 131 137
139 149 151 157 163 167 173 179
……
#include <stdio.h>
#include<math.h>
int main()
{
int i = 0;
int q = 0;
int a = 0;
int count = 0;
for (i = 100; i <= 999; i++)
{
int x = 1;
q = (int)sqrt(i);
for (a = 2; a <= q; a++)
{
if (i % a == 0)
{
x = 0;
break;
}
}
if(x)
{
printf("%d ", i);
count++;
if (count == 8)
{
count = 0;
printf("\n");
}
}
}
return 0;
}