1、特殊a串数列求和
题目:给定两个均不超过9的正整数a和n,要求编写程序求a+aa+aaa++⋯+aa⋯a(n个a)之和。
输入格式:
输入在一行中给出不超过9的正整数a和n。
输出格式:
在一行中按照“s = 对应的和”的格式输出。
输入样例:
2 3
输出样例:
s = 246
代码1:
#include<stdio.h>
int main()
{
int a,n,s=0,item,i,j,one;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++){
one=0;
for(j=0;j<=i-1;j++){
one=one*10+1;
}
item=a*one;
s+=item;
}
printf("s = %d",s);
return 0;
}
代码2:
#include<stdio.h>
int main()
{
int i=1,item=0,a,n;
long sum=0;
scanf("%d%d",&a,&n);
for(i=1;i<=n;i++)
{
item=item*10+a;
sum+=item;
}
printf("s = %d\n",sum);
return 0;
}
2、求幂级数展开的部分和
题目:已知函数ex可以展开为幂级数1+x+x2/2!+x3/3!+⋯+xk/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求ex的近似值,求和一直继续到最后一项的绝对值小于0.00001。
输入格式:
输入在一行中给出一个实数x∈[0,5]。
输出格式:
在一行中输出满足条件的幂级数部分和,保留小数点后四位。
输入样例:
1.2
输出样例:
3.3201
代码1:
#include<stdio.h>
int main()
{
int i;
double sum = 1, x, ans1, ans2, p = 1, item;
scanf("%lf", &x);
i = 0;
ans1 = x;
ans2 = 1;
while(1) {
item = ans1 / ans2;
if(item < 0.00001) break;
sum += item;
ans1 = ans1 * x;
p++;
ans2 = ans2 * p;
}
sum=sum+item;
printf("%.4f",sum);
return 0;
}
代码2:
#include<stdio.h>
#include<math.h>
int main()
{
double fact(int n);
int i=1;
double item=1,sum=1,x;
scanf("%lf",&x);
while (item>0.00001)
{
item=pow(x,i)/fact(i);
sum=sum+item;
i++;
}
printf("%.4f\n",sum);
return 0;
}
double fact(int n)
{
double temp=1;
int i;
for (i=1;i<=n;i++)
{
temp=temp*i;
}
return temp;
}
3、求奇数和
题目:本题要求计算给定的一系列正整数中奇数的和。
输入格式:
输入在一行中给出一系列正整数,其间以空格分隔。当读到零或负整数时,表示输入结束,该数字不要处理。
输出格式:
在一行中输出正整数序列中奇数的和。
输入样例:
8 7 4 3 70 5 6 101 -1
输出样例:
116
代码1:
#include<stdio.h>
int main()
{
int sum=0,number;
while(scanf("%d",&number)&&number>0)
{
if(number%2!=0)
sum+=number;
}
printf("%d",sum);
return 0;
}
代码2:
#include<stdio.h>
int main()
{
int i,sum=0;
while (scanf("%d",&i)&&i>0)
{
if (i%2==1)
{
sum=sum+i;
}
}
printf("%d\n",sum);
return 0;
}