题意:给出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. JSP_EL使用

    JSP中EL表达式的简单介绍和使用   参考资料: http://www.java3z.com/cwbwebhome/article/article8/8124.html?id=2453   http ...

  2. C语言 电梯函数

    #include <stdio.h> #include <time.h> #include <stdlib.h> void test(){//汉字输出 printf ...

  3. 【风马一族_Android】代码英语之二 布局文件的Android各个参数

    布局文件的Android各个参数 第一类:属性值 true或者 false           android:layout _center Hrizontal 水平居中     android:la ...

  4. if语句代码优化

    if($sum==7){ $sz+=135; }elseif($sum==5){ $sz+=80; }elseif($sum==6){ $sz+=97; }elseif($sum==4){ $sz+= ...

  5. shell 字符截取

    Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.aaa.com/123.htm. # 读sharp 谐音 杀: ${var#*//} 杀掉//左边的,保留右边的 ...

  6. Nginx+Keepalived实现高可用站点

    Keepalived是一个基于VRRP协议来实现的服务高可用方案,可以利用其来避免IP单点故障,类似的工具还有heartbeat. corosync.pacemaker.但是它一般不会单独出现,而是与 ...

  7. php 获取链接参数

    private function getQuerystr($url,$key){        $res = '';        $a = strpos($url,'?');        if($ ...

  8. DataSnap如何监控Tcp/IP客户端的连接情况

    一个实例,如果客户端是TCP/IP是短连接的情况就没有必要了. 一.GlobVar.pas单元,定义应用系统全局数据类型及变量: unit GlobVar; interface uses System ...

  9. string和stringBuilder的区别

    曾经被问到过这个问题,回答得不是很好,在网上找了一下,园子里有大神很详细地讨论了二者的区别. http://www.cnblogs.com/yunfeng8967/articles/1093832.h ...

  10. selenium+python find_element_by_css_selector方法使用

    1.通过类class获取 比如如下代码 <h1 class="important"> This heading is very important. </h1&g ...