解题思路:





注意事项:





参考代码:/*求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个一位的整数。
例如2+22+222+2222+22222(此时共有5个数相加)
输入
整数a和n(n个数相加,1<= n, a<=9)*/
#include<stdio.h>
int main()
{
 int a,b,n,j,sum=0;
 scanf("%d%d",&a,&n);
 for(j=0,b=a;j<n;j++)
 {
  sum=sum+a;
  a=a*10+b;
 }
 printf("%d\n",sum);
 return 0;
}

点赞(14)
 

0.0分

10 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 10 条评论

利牧 2年前 回复TA
@苏沐橙 求指点,为什么s的值在一开始一定要赋值为0?
李翰 3年前 回复TA
#include<stdio.h>
int function(int a,int n){
	if(n==1)
		return a;
	else
		return function(a,n-1)*10+a;
}
int main(){
	int a,n;
	int sum,i;
	scanf("%d%d",&a,&n);
	for(i=1;i<=n;i++){
		sum=sum+function(a,i);
	}
	printf("%d",sum);
}
为什么用函数的递归调用提交不通过
KONO 3年前 回复TA
@苏沐橙 a=a*10+a;错了,下一个循环;a的值不是原来的值了
苏沐橙 4年前 回复TA
#include <stdio.h>

int main(void)
{
    int a, n,s = 0, i;
    scanf("%d %d",&a,&n);
    for(i=0; i<n; i++)
    {
        s = s + a;
        a = a * 10 + a;
    }
    printf("%d\n", s);
    return 0;
}
大神指点为啥错了
上单皇阿玛 4年前 回复TA
#include<stdio.h>
#include<math.h>
long long fun(long long a,long long n)
{
	long long s=0,sum=0,i;
	for(i=0;i<n;i++)
	{
		s=s+a*pow(10,i);
		sum=sum+s;
	}
	return sum;	
}
int main()
{
	long long a,b,c;
	scanf("%lld%lld",&a,&b);
	c=fun(a,b);
	printf("%lld",c);
}
〃平淡最真╮ 4年前 回复TA
@九九归一 如果直接写a,那么下次赋值的时候就得不到你想要的结果
427℃-173℃ 4年前 回复TA
#include<stdio.h>

int sum(int a,int n);
int main()
 {int n,a;
 int sum(int a,int n);
 scanf("%d%d",&a,&n);
 printf("%ld",sum);
 
 }
 int sum(int a,int n)
{int i;
long int t,sum=0;
t=a;
for(i=1;i<=n;i++)
{sum=sum+t;
t=t*10+a;
}
return sum;
  }
 我的这个代码为什么运行不成功那望大神指教
九九归一 4年前 回复TA
这里需要将b的值赋给a的作用是什么呢?不可以直接就是a吗
煮酒老麦 4年前 回复TA
@煮酒老麦 还是楼主的比较巧妙,前一项乘以10再加a就可以了
煮酒老麦 4年前 回复TA
#include<stdio.h>
#include<math.h>
int main() {
	int a,n,i,x=0,s=0;
	scanf("%d %d",&a,&n);
	for(i=1;i<=n;i++){
			x=a*pow(10,i-1)+x;
			s=s+x;
		}
	printf("%d",s);
	return 0;
}