UVA 10523 Very Easy!!!(大数据加法、乘法)
题意:给出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!!!(大数据加法、乘法)的更多相关文章
- 大数据的乘法实现——C语言
1大数据乘法的算法思路: 输入两个字符串,得到结果,例如:123456789*123456789: 思路:1)首先 123456789*1 = 9 18 27 36 45 54 63 ...
- 剑指offer第12题打印从1到n位数以及大整数加法乘法
字符和数字加减就是字符的ASCII码和数字直接加减. 方法一: 1)在字符串操作中给一个整形数字加(字符0)就是把它转化为字符,当然给一个字符减去(字符0)就可以把它转化为数字了:如果确实是最后 ...
- UVa 10523 - Very Easy !!!
题目大意:给你一个公式,直接按照式子计算就可以了,要用到大数. import java.io.*; import java.util.*; import java.math.*; class Main ...
- 【大数据】Scala学习笔记
第 1 章 scala的概述1 1.1 学习sdala的原因 1 1.2 Scala语言诞生小故事 1 1.3 Scala 和 Java 以及 jvm 的关系分析图 2 1.4 Scala语言的特点 ...
- 17_常用API_第17天(包装类、System、Math、Arrays、大数据运算)_讲义
今日内容介绍 1.基本类型包装类 2.System类 3.Math类 4.Arrays类 5.大数据运算 01基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 ...
- 7、包装类、System、Math、Arrays、大数据运算
基本类型封装 基本数据类型对象包装类概述 *A:基本数据类型对象包装类概述 *a.基本类型包装类的产生 在实际程序使用中,程序界面上用户输入的数据都是以字符串类型进行存储的.而程序开发中,我们需要把字 ...
- 基本类型包装类、System类、Math类、Arrays类、大数据运算
1 基本类型包装类 Java中想对8种基本数据类型进行复杂操作很困难. 实际程序界面上用户输入的数据都是以字符串类型进行存储的. 程序开发中,需要把字符串转换成指定的基本数据类型. 1.1基本数据类型 ...
- 常用API(包装类、System、Math、Arrays、大数据运算)
常用API 今日内容介绍 u 基本类型包装类 u System u Math u Arrays u BigInteger u BigDecimal 第1章 基本类型包装类 大家回想下,在第二天我们学习 ...
- java基础(17):包装类、System、Math、Arrays、大数据运算
1. 基本类型包装类 大家回想下,在第三篇文章中我们学习Java中的基本数据类型时,说Java中有8种基本的数据类型,可是这些数据是基本数据,想对其进行复杂操作,变的很难.怎么办呢? 1.1 基本类型 ...
随机推荐
- git使用小结
本篇文章主要介绍自己在平时工作中使用git的一些常用命令,之前都是记录在本子上面,现在把他们记录在博客上,便于保存和回顾. 1. 建立自己的git仓库 1.1 在一个新建的repo文件夹里面,执行gi ...
- NSS_04 extjs中grid接收datetime类型参数列
今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , ...
- cordova navigator app 对象
navigator.app.loadUrl() 加载 web 页面的应用程序中或者系统默认的浏览器中 navigator .app.cancelLoadUrl() 在 web 页面成功加载之前取消 ...
- wpf窗体中复合控件焦点控制
1. 自定义控件 在UserControl标记中 <UserControl KeyboardNavigation.ControlTabNavigation="Local ...
- js----对象的创建
js创建对象的三种方法 在介绍之前一定要弄清楚一个概念,比如var a = new Object(); 这里的a并不是一个对象,而是一个对象的实例. 一.用Json创造 var a = {b:1,c: ...
- PHP 图片文件上传代码
通过 PHP,可以把文件上传到服务器.里面加入一些图片的判断,如果不加判断文件的类型就可以上传任意格式的文件. 为了网站的安全,肯定不让上传php文件,如果有人进入你的后台,上传了一个php文件,你的 ...
- Demo学习: Basic jQuery
UniGUI是一套基于ExtJS的Delphi的WEB框架,它是使用ExtPascal来转化到ExtJS,ExtJS是一个跨浏览器的JavaScript库,因此UniGUI发布出来的程序可以在各种浏览 ...
- [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(一)
内容较多,开篇作为说明和目录. 实验环境规划:服务器:IBM x3500 m3三台其中两台用作HA,另外一台安装VMware ESXi安装两个虚机做Stream Replication.NAS存储IP ...
- 在Debian中安装VMware Workstatption 12
在Debian中安装VMware Workstatption 12-----------------------------------------------> 下载文件: *vmwar ...
- EF中使用Select new 方法中字段值替换的问题
前提需要替换查询得到的List当中的某个字段的值,替换规则有一个mapping关系 尝试代码 有问题 无法获取任何数据 /// <summary> /// 获取Treegrid的List ...