求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和

求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和

类似sn=2+22+222+2222+22222
//求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和
//类似sn=2+22+222+2222+22222这样的和
//确定一个数,然后相继计算它的后5项数
#include<stdio.h>
#include<Windows.h>

int main()
{
//先让用户传入一个数
int i=2;
//然后依次计算其不同位数
int shi = i + i * 10;
int bai = shi + i * 100;
int qian = bai + i * 1000;
int wan = qian + i * 10000;
int sum = shi + bai + qian + wan + i;
printf(“前5项的和为:%d”, sum);
system(“pause”);
return 0;
}
//修改版
//用函数的形式来解决问题
//创建一个名为CreatNum的函数,用于计算前5项的和
#include<stdio.h>
#include<windows.h>
#include<math.h>
int CreateNum(int a,int n)
{
//先剔除掉特殊情况
//当a>10或者a<0以及n<0这样的情况都是不满足的
if (a > 10 || a < 0 || n < 0)
{
return 0;
}
//因为这儿有一个个位数,所以记住i的值要从0开始
int i = 0;//i指的是n上面的指数
int num=0;
for (; i < n; i++)
{
//表示每一项的值
//后面main函数中的for循环用于将每一项的值相加后计算出总和
//此处要计算没一项,所以要使用pow()函数,需要#include<math.h>
num += a * pow(10, i);
}
//将计算得到的结果返回
return num;
}
int main()
{
//创建两个实参
//用实参a来表示用户传入的数
int a;
//用实参i表示循环的次数,同时因为循环次数与次幂数是同时增加的,所以它还可以当做实参传入
int i=1;
//创建一个变量来记录这些数字的和
int sum=0;
printf(“请输入你要求值得数:”);
scanf_s("%d", &a);
//创建一个for循环
//每执行一次循环就调用一次函数
for (; i < 6; i++)
{
//调用求和函数
//每次传入的i的值不同,CreatNum()函数中for循环的次数就不同
sum += CreateNum(a, i);
}
//输出sum的值就为前5项的和
printf(“前5项的和为%d”, sum);
system(“pause”);
return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值