Python123:特殊a串数列求和、求幂级数展开的部分和、求奇数和(C语言)

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、求幂级数展开的部分和

题目:已知函数e​x​​可以展开为幂级数1+x+x​2​​/2!+x​3​​/3!+⋯+x​k​​/k!+⋯。现给定一个实数x,要求利用此幂级数部分和求e​x​​的近似值,求和一直继续到最后一项的绝对值小于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;
}
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

西柚喝茶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值