鱼C论坛

 找回密码
 立即注册
查看: 4292|回复: 10

一道C语言求和的题目,直接上代码,解析不要

[复制链接]
发表于 2012-11-3 19:20:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
a+aa+aaa+......a 有N个a,  输入a=5,比如n=4,答案5+55+555+5555算出结果, 现在我要N=10000;请输入一个a,求和
直接上C代码,解析就不用了
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-3 19:25:45 | 显示全部楼层
求助啊,想了很久了,写不出来
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-3 19:35:44 | 显示全部楼层
不能沉啊啊啊啊
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-3 19:52:47 | 显示全部楼层
我自己顶个啊
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-11-3 22:22:55 | 显示全部楼层
哈哈,终于自己想出来了,  此帖可以沉了
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-3 23:30:29 | 显示全部楼层
#include<iostream>
#include<math.h>
using namespace std;

#define a 3
#define n 3

int main()
{
        int i=0,j=0;
        unsigned long int A=0,B=0;
        for(j;j<n;j++)
        {
                for(i;i<=j;i++)
                {
                    A+=a*pow(10,i);
                }
                B+=A;
        }
        cout<<B<<"\n";

        return 0;
}

嵌套循环
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-4 00:47:29 | 显示全部楼层
#include "stdio.h"
#include "stdlib.h"
#include "string.h"

#define M  10001

void main()
{
        int num[M];   //目前最大支持10001个数据,,建议使用动态分配
        int a,N;
        int i = 0;

        printf("please put in the a and N:");
        scanf("%d %d",&a,&N);

        /*对每一位单独加*/
        for (i=0;i<N;i++)
        {
            num[i] = a*(i+1);
        }
    /*计算加完后每一位,最高位保留在进位后的值*/
        for (i=N-1;i>0;i--)
        {
                if (num[i]>9)
                {
                        num[i-1] += num[i]/10;
                        num[i] %= 10;
                }
        }
    /*这里只是结果打印如此。不知是否你要的就是这种,不过大整数没法一次性保存*/
        for (i=0;i<N;i++)
        {
                printf("%d",num[i]);
        }

        putchar(10);
        return;
}
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-4 01:01:12 | 显示全部楼层
我上面的那个函数对于long型范围内数比较好
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-4 01:18:14 | 显示全部楼层
  1. # include <stdio.h>

  2. int main()
  3. {
  4.         int value[10000],a, N, i;
  5.         scanf("%d%d", &a, &N);
  6.         for (i = 1 ; i <= N ;++i )
  7.         {
  8.                 value[i] = a * i;
  9.         }

  10.         for (i = N ; i > 1 ; --i )
  11.         {
  12.                 if (value[i] >= 10)
  13.                 {
  14.                         value[i-1] += value[i] / 10;
  15.                         value[i] %= 10;
  16.                 }
  17.         }

  18.         for (i = 1; i <= N; ++i)
  19.         {
  20.                 printf("%d", value[i]);
  21.         }
  22.         putchar('\n');
  23.         return 0;
  24. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-4 01:18:57 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-11-5 00:11:58 | 显示全部楼层
  1. for (i=0;i<N;i++)
  2.         {
  3.                 printf("%d",num[i]);
  4.         }

  5.         putchar(10);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-16 03:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表