| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 21184 人关注过本帖
标题:求Sn=a+aa+aaa+....+aa...a之值,其中a是一个数字,n表示a的位数。例如:2+ ...
只看楼主 加入收藏
不在状态
Rank: 1
来 自:河北
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-10-19
结帖率:75%
收藏
 问题点数:0 回复次数:10 
求Sn=a+aa+aaa+....+aa...a之值,其中a是一个数字,n表示a的位数。例如:2+22+222+2222(此时n=5)n由键盘输入。
不要写的太过复杂,看不懂,谢谢!!
搜索更多相关主题的帖子: 键盘 
2011-10-24 19:21
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
怎么觉得前几天就见过这题?
2 + 22 + 222 + 2222 对应 n=5 ? 个人觉得对应n=4更合适,不过随你。
下面是段示例代码,不过只对n<=10的情况输出有效。
程序代码:
#include<stdio.h>
int S(int a, int n)
{
    int sum;
    for(sum = 0; n; n--, a *= 10) sum += a * n;
    return sum;
}
int main()
{
    int a, n;
    while(scanf("%d %d", &a, &n) != EOF)
        printf("%d\n", S(a, n - 1));
    return 0;
}



重剑无锋,大巧不工
2011-10-24 19:40
不在状态
Rank: 1
来 自:河北
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-10-19
收藏
得分:0 
回复 2楼 beyondyf
嗯嗯,对应5.
可是搞不懂
您用的是数组吗

努力不断持续。奇迹就会发生!
2011-10-24 20:29
不在状态
Rank: 1
来 自:河北
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-10-19
收藏
得分:0 
能不能用for 、while、或 goto 语句来实现呢

努力不断持续。奇迹就会发生!
2011-10-24 20:44
忆泪
Rank: 2
等 级:论坛游民
帖 子:42
专家分:49
注 册:2011-10-22
收藏
得分:0 
程序代码:
#include<stdio.h>
void main()
{
    int i,a,n,t=0,s=0;       /*i控制循环*/
    printf("请输入a和n\n"); 
    scanf("%d %d",&a,&n);
    for(i=0;i<n;i++)    
    {
        t=t+a;               /*t为中间过程量,表示的是上一次计算的结果*/
        s=s+t;
        a=a*10;
    }
    printf("s=%d\n",s);
}
2011-10-24 20:44
不在状态
Rank: 1
来 自:河北
等 级:新手上路
帖 子:23
专家分:0
注 册:2011-10-19
收藏
得分:0 
回复 5楼 忆泪
谢谢5楼

努力不断持续。奇迹就会发生!
2011-10-24 21:05
wenyi0000
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-8
收藏
得分:0 
#include<stdio.h>
void fun(int a,int n)//求和
{
    int i;int sn=0;int tn=0;int pn=0;
    for(i=0;i<n;i++)
    {
        tn=tn*10+a;
        sn=sn+tn;
    }
    printf("%d",sn);
}
void main()
{
    int a ,n;
    printf("输入a和n:  \n");
    scanf("%d %d",&a,&n);
    fun(a,n);
}
2011-10-24 21:28
朱林
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2011-10-17
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a,n,s,i,k;
    k=0;
    s=0;
    scanf("%d %d",&a,&n);
    for(i=1;i<=n;i++)
    {
        k=k+a;
        s=s+k;
        a=10*a;
    }
    printf("%d\n",s);
}
2011-10-24 21:45
ding2010yu
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-10-24
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a,n,count=1;
    long int sn=0,tn=0;
    printf("please input zhe a and n");
    scanf("%d%d",&a.&n);
    printf("a=%d,n=%d\n",a,n);
    while(count<n)
    {
        tn = tn+a;
        sn = sn+tn;
        a=a*10;
        count++;
    }
    printf("a+aa+aaa+...=%ld",sn);
}
2011-10-24 21:55
吴军旗
Rank: 5Rank: 5
等 级:职业侠客
帖 子:286
专家分:308
注 册:2011-9-14
收藏
得分:0 
程序代码:
#include < stdio.h >
#include < stdlib.h >
#define N 5

void main ( )
{
    int i;
    int sum = 0;
    int t = 0;
    int a ;
    printf ( "输入a" );
    scanf ( "%d", &a );
    for ( i = 1; i <= N; i++ )
    {
        t = t + a;
        sum = sum + t;
        a = 10*a;
       
    }
    printf ( "a + aa + aaa + .....+  = %d", sum );
    system ( "pause" );
}
个人觉得,上楼用函数的方法最好,,,,,,,,,,,,,,,

最惨的不是忘不了悲伤的回忆,而是那些悲伤的回忆却开始记不清。。。
2011-10-24 22:04
快速回复:求Sn=a+aa+aaa+....+aa...a之值,其中a是一个数字,n表示a的位数。例如 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024831 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved