【C语言|菜鸟教程】100道进阶经典例题详细解答(C 练习实例18 - 求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数 )


前言

本系列为C语言菜鸟100道基础经典例题详解刷题系列。每天1题,点滴成长,一起逆袭。


一、题目描述

题目:求s=a+aa+aaa+aaaa+aa…a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。


二、题目分析

程序分析:关键是计算出每一项的值。

三、解题

程序运行代码1

#include<stdio.h>
int main()
{
    int i,j,a,n,sum=0,y;
    scanf("%d %d",&a,&n);
    for(i=1;i<=n;i++){
    	y=0;	//确保第一个数为2
    	for(j=1;j<=i;j++){	//求每一项2,22,222......
    		y=y*10+a;		//根据规律得出
		}
		sum+=y;
	}
	printf("sum=%d",sum);
    return 0;
}

程序运行代码2

#include<stdio.h>
#include<math.h>

int main()
{
    int i, a, n, sum=0;
    printf("请输入 a 和 n:\n");
    scanf("%d%d", &a, &n);
    for(i=0; i<n; i++)
    {
        sum += a*pow(10, i)*(n-i);
    }
    printf("sum is %d\n", sum);
    return 0;
}

总结

C语言 pow() 函数用来求 x 的 y 次方的值。
头文件:math.h
语法/原型
double pow(double x,double y);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值