题意:给出N,A,计算i*A^i(i=1~N)的和。1<=N<=30,0<=A<=15。

就是大数据运算,别的没什么,注意细节之处即可。

这题还要注意两个地方:

1.考虑A=0的情况,直接输出0即可。(我没写这个判断时,竟给我RE,而不是WA。。。不知道RE出在哪里了)

2.计算A^i的值的时候,不要每次都重新计算,会超时。后一次A^(i+1)可以利用前一次A^i的结果,乘以A即可。

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <string>
#include <string.h> using namespace std;
int N,A;
int n1,n2,n3;//n1表示a的位数,n2表示b的位数,n3表示c的位数
int a[],b[],c[]; //a存储A的值,b存储N的值,c存储A^i的值
int ans[],tmp[]; //ans存储最后的结果 void add(int b[]) {
for(int i=; i<; i++) {
ans[i]=ans[i]+b[i];
if(ans[i]>) {
ans[i]-=;
ans[i+]++;
}
}
}
int multiply(int a1[],int b1[],int n1,int n2) {
memset(tmp,,sizeof(tmp));
for(int i=; i<n1; i++) {
for(int j=; j<n2; j++) {
tmp[i+j]+=a1[i]*b1[j];
}
}
for(int i=; i<n1+n2; i++) {
if(tmp[i]>=) {
tmp[i+]+=tmp[i]/;
tmp[i]%=;
}
}
/*
for(int i=0; i<n1+n2; i++)
c[i]=tmp[i];
*/
//第n1+n2位的序号为n1+n2-1,一开始就直接写了c[n1+n2]>0,结果就错了
if(tmp[n1+n2-]>)
return n1+n2;
else
return n1+n2-;
} int main() {
while(scanf("%d%d",&N,&A)!=EOF) {
memset(ans,,sizeof(ans));
//不写下面A=0的情况,会RE,但具体RE出在哪里就不知道了
if(A==) {
printf("0\n");
continue;
} if(A<)
n2=;
else
n2=;
a[]=A%;
a[]=A/;
memset(c,,sizeof(c));
c[]=;
n1=;
//不需要每次都重新计算A^i的值(不然会超时),后一次A^(i+1)可以利用前一次A^i的结果,每次计算的值存储在c数组里
for(int i=; i<=N; i++) {
n1=multiply(c,a,n1,n2);
//将乘后的结果存入到c数组,以便后一次利用
for(int j=; j<n1+n2; j++)
c[j]=tmp[j];
b[]=i%;
b[]=(i/)%;
b[]=i/;
if(i<)
n3=;
else if(i<)
n3=;
else
n3=;
//每次循环i*A^i的值存储在tmp数组里后,再与ans相加存储到ans数组中
multiply(c,b,n1,n3);
add(tmp);
}
//找到ans中最高位的索引
int idx=;
while() {
if(ans[idx]==) {
idx--;
continue;
} else
break;
}
for(int i=idx; i>=; i--) {
printf("%d",ans[i]);
}
printf("\n");
}
return ;
}

UVA 10523 Very Easy!!!(大数据加法、乘法)的更多相关文章

  1. 大数据的乘法实现——C语言

    1大数据乘法的算法思路: 输入两个字符串,得到结果,例如:123456789*123456789: 思路:1)首先 123456789*1 = 9   18  27  36  45  54  63   ...

  2. 剑指offer第12题打印从1到n位数以及大整数加法乘法

       字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...

  3. UVa 10523 - Very Easy !!!

    题目大意:给你一个公式,直接按照式子计算就可以了,要用到大数. import java.io.*; import java.util.*; import java.math.*; class Main ...

  4. 【大数据】Scala学习笔记

    第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java  以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...

  5. 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义

    今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...

  6. 7、包装类、System、Math、Arrays、大数据运算

    基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字 ...

  7. 基本类型包装类、System类、Math类、Arrays类、大数据运算

    1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...

  8. 常用API(包装类、System、Math、Arrays、大数据运算)

    常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...

  9. java基础(17):包装类、System、Math、Arrays、大数据运算

    1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...

随机推荐

  1. Enhanced RCP: How views can communicate – The e4 way | Tomsondev Blog

    Some weeks ago I published how views can communicate using the EventAdmin-Service. To get things wor ...

  2. jQuery1.9 $.browser 的替代方法

    jQuery 从 1.9 版开始,移除了 $.browser 和 $.browser.version , 取而代之的是 $.support . 在更新的 2.0 版本中,将不再支持 IE 6/7/8. ...

  3. php 图形验证码的3种方法

    生成图形验证码需要使用php GD库来生成,如果你没开户GD库我们需要在php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了,然后重启apache 或iis环境即可 检 ...

  4. apache问题集锦

    一.如何防止别的网站盗连我们网站的图片.CSS.JS等资源? RewriteCond %{HTTP_REFERER} !test.test.com [NC] #RewriteRule \.(gif|j ...

  5. Oracle bbed使用说明2---常用命令

    一.BBED常用命令说明 先看帮助的说明 BBED> help all SET DBA [ dba | file#, block# ] SET FILENAME 'filename' SET F ...

  6. 1. opencv的初体验

    http://guoming.me/opencv-config  这篇文章有讲解opencv的安装与配置 一些常用库 opencv_core249d.lib opencv_imgproc249d.li ...

  7. PAT乙级真题1016.部分A+B(15)(2016-4-28)

    原题: 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA.例如:给定A = 3862767,DA ...

  8. HDU 1405 第六周 J题

    Description Tomorrow is contest day, Are you all ready?  We have been training for 45 days, and all ...

  9. 全部快捷方式图标变成LNK文件怎么办

    windowsLNK文件打开方式恢复 相信有些用户曾试过错误地把LNK文件打开方式更改其文件导致系统所有快捷方式都失效vista与Windows7系统还普遍使用时候相信大家会有点惊慌失措要紧下面只要大 ...

  10. sysfs分析

      Linux设备模型——设备驱动模型和sysfs文件系统解读 内核版本:2.6.30 1. What is sysfs? 个人理解:sysfs向用户空间展示了驱动设备的层次结构.我们都知道设备和对应 ...