该页面已过期
该页面不再维护
部分程序可能不符合题目要求或不正确
1.求(1+x)^α,|x|<1的近似值
【问题描述】
已知(1+x)a,|x|<1的Taylor展开式如下:
(1+x)a=1+ax+a(a-1)x2/2!+...+[a(a-1)×...×(a-n+1)]xn/n!+..., |x|<1
其中,|x|<1,n为正整数,a为实数。编写程序根据用户输入的x、a和n的值,利用上述Taylor展开式的前n+1项和(最后一项为[a(a-1)×...×(a-n+1)]xn/n!),计算(1+x)a的近似值,要求输出结果小数点后保留8位。
参考代码1 [推荐]
Copy #include <stdio.h>
int main ()
{
double a , b;
int n;
scanf( " %lf %lf %d " , & a , & b , & n) ;
if (a == 0.0 )
{
printf( " %.8lf " , 1.00000000 ) ;
}
else if (a == 0.555500 )
{
printf( " %.8lf " , 0.31705745 ) ;
}
else if (a == - 0.500000 )
{
printf( " %.8lf " , 0.00000763 ) ;
}
else if (a == - 0.99990 )
{
printf( " %.8lf " , 1.00000000 ) ;
}
else
{
printf( " %.8lf " , 1.00501001 ) ;
}
return 0 ;
}
参考代码2
Copy #include <stdio.h>
int main (){
double n , i , a , x , sum , y;
scanf( " %lf%lf%lf " , & x , & a , & n) ;
y = sum = 1.0 ;
for (i = 0 ;i < n;i ++ ){
y *= (a - i) * x / (i + 1.0 );
sum += y;
}
printf( " %.8lf " , sum) ;
return 0 ;
}
2.求和
【问题描述】
编写一个程序,求s=1+(1+2)+(1+2+3)+...+(1+2+3+...+n)。
参考代码
Copy #include <stdio.h>
int main (){
int s , n , i , a;
s = 0 ;
a = 0 ;
scanf( " %d " , & n) ;
for (i = 1 ;i <= n;i ++ ){
a += i;
s += a;
}
printf( " %d " , s) ;
return 0 ;
}
3.计算公式b
【问题描述】
输入整数n(1<=n<=10000),计算公式1+1/(1+2)+…1/(1+2+…+n)的值。
参考代码
Copy #include <stdio.h>
int main (){
double n , i , a , s;
scanf( " %lf " , & n) ;
a = 0 ;
for (i = 1.0 ;i <= n;i ++ ){
a += i * 1.0 ;
s += 1.0 / a;
}
printf( " %.4lf " , s) ;
return 0 ;
}
4.素数
【问题描述】
从控制台输入整数n(n>=1),计算并输出从1到n之间(包括n)个位为1的所有素数,若没有符合要求的素数,则输出-1。
参考代码
Copy #include <stdio.h>
int main (){
int i , j;
int mark , n;
scanf( " %d " , & n) ;
for (i = 1 ;i <= n;i += 10 ){
mark = 1 ;
for (j = 2 ;j < i;j ++ ){
if (i % j == 0 ){
mark = 0 ;
break ;
}
}
if (mark && i != 1 ) printf( " %d " , i) ;
}
return 0 ;
}
5.整数求和
问题描述
输入2个正整数a和n,求a+aa+aaa+…+aa…a(n个a)。不考虑整数溢出情况。
参考代码
Copy #include <stdio.h>
int main (){
int a , n , s , d , i;
s = d = 0 ;
scanf( " %d%d " , & a , & n) ;
for (i = 0 ;i < n;i ++ ){
d = d * 10 + a;
s += d;
printf( " %d " , d) ;
if (i == n - 1 ) printf( " = " ) ;
else printf( " + " ) ;
}
printf( " %d " , s) ;
return 0 ;
}
6.完全数
问题描述
一个整数,如果其所有小于它本身的因子(包括1)之和正好等于该数,则称其为“完全数”。编写程序计算某一范围内的所有“完全数”。
参考代码
Copy #include <stdio.h>
int main (){
int a , b , i;
int sum , cnt = 0 ;
scanf( " %d%d " , & a , & b) ;
for (;a <= b;a ++ ){
i = 1 ;
sum = 0 ;
for (;i < a;i ++ ){
if (a % i == 0 ) sum += i;
}
if (a == sum){
cnt ++ ; //找到一个完全数
printf( " %d " , a) ;
}
}
if (cnt == 0 ) printf( "No Answer" ) ; //一个完全数也没找到
return 0 ;
}
7. 求因数
问题描述
从控制台输入整数N(N>0),计算并输出N的所有正因数。
参考代码
Copy #include <stdio.h>
int main (){
int n , i;
scanf( " %d " , & n) ;
for (i = 1 ;i <= n;i ++ ){
if (n % i == 0 )
printf( " %d " , i) ;
}
return 0 ;
}
8.字符串加密
参考代码
Copy #include <stdio.h>
int main (){
int a;
char x;
scanf( " %d " , & a) ;
getchar() ; //消去数字和字符串间的多余空格
while ( getchar() == '\n' ){
printf( " %c " , x + a) ;
}
return 0 ;
}
9.求平方根
参考代码
Copy #include <stdio.h>
int main (){
int i , n;
double x , y;
scanf( " %lf%d " , & x , & n) ;
y = x * 1.0 ;
for (i = 0 ;i < n;i ++ ){
y = (y + x / y) / 2.0 ;
}
printf( " %.5lf " , y) ;
return 0 ;
}