Andy的作业--大数乘小数
来源:互联网 发布:java编程思想有多少版 编辑:程序博客网 时间:2024/05/06 20:27
Andy的作业
Time Limit:1sMemory limit:32MAccepted Submit:232Total Submit:1674
Time Limit:1sMemory limit:32MAccepted Submit:232Total Submit:1674
Andy每天都有很多作业要做,他的老师总是在说“这些作业你明天必须交上来……”。现在他找你帮忙做其中的一项作业,给出N个整数A1, A2, ..., AN,有 M 个询问 q (L, R),对于每个询问,你要输出一个整数,第L个数到第R个数的乘积,这个乘积不会超过1000位。
输入
输入包含多组测试数据。每组数据第一行为两个整数N,M (N <= 800, M <= 1000) 接下来N行,给出这N个整数。然后M行,每行两个整数L R表示一个询问。
输出
对于每个询问,输出相应的结果。当所有询问结束之后输出“Homework Finished”。
样例输入
10 5 9 7 9 6 4 9 5 8 3 4 5 9 3 8 8 10 10 10 1 7 1 1 1 1 1
样例输出
4320 77760 96 4 612360 Homework Finished 1 Homework Finished 解题分析:这道题涉及到大数相乘,考虑到是大数乘小数,可以考虑用unsigned long long a[63]存放最后结果;还有一点很重要的是这道题目存在负数得情况哦!
code:
#include<stdio.h>
#include<string.h>
int l,r,n,m;
int num[800],b[800];
unsigned long long a[63]={1};
void fun()
{
int flag=0,temp=1,len=1;
register int i,j;
memset(a,0,sizeof(a));
a[0]=1;
for(i=l-1;i<r;i++)
if(num[i]==0){printf("0/n");return;}
for(i=l-1;i<r;i++)
{
if(num[i]<0)temp*=-1;
flag=0;
for(j=0;j<=len-1;j++) //核心算法
{
a[j]=b[i]*a[j]+flag;
flag=a[j]/10000000000000;
a[j]%=10000000000000; //13个0 ,0得个数应该可以更多点
}
if(flag>0){len++;a[len-1]=flag;}
}
if(temp==-1)printf("-");
printf("%llu",a[len-1]);
for(i=len-2;i>=0;i--)
printf("%13.13llu",a[i]);
printf("/n");
}
int main()
{
register int i,j;
while(scanf("%d%d",&n,&m)!=EOF)
{
i=0;
while(n--)
scanf("%d",&num[i++]);
for(j=0;j<i;j++)
b[j]=num[j]>0?num[j]:-num[j];
while(m--)
{
scanf("%d%d",&l,&r);
fun();
}
printf("Homework Finished/n");
}
return 0;
}
- Andy的作业--大数乘小数
- Andy的作业 (大数相乘)
- 大数乘小数
- 大数乘小数
- 对大数精度的处理(2)_大数乘小数
- HDU1133 大数乘小数 大数除小数
- 大数乘小数核心代码
- 高精度之大数乘小数
- 精度计算-大数乘小数
- ZOJ 3167(大数乘小数的简单应用)
- 大数模板(大数乘小数)
- FZU1404 andy的作业
- FZU1404 Andy的作业
- FZU1404 Andy的作业
- Andy的作业 FZU
- 精度计算:(二) 大数乘小数
- 乘法——(大数乘小数)
- (大数乘小数、大数加小数、大数相乘、大数阶乘、大数进制转换)
- HDU1002 A + B Problem II--大数相加的应用
- Asp.net Tree角色 相应权限的显示 与选中子节点 该子节点以后的全选中,修改权限
- 用 Delphi 7 创建 ActiveX 组件交 ASP 使用
- 我是真正的程序员吗
- Oracle时间差表达式
- Andy的作业--大数乘小数
- mtk视频格式
- Bignum Arithmetic--------大数相乘的实例
- 一个很特别的TCP选项TCP_DEFER_ACCEPT
- effecctive STL(二)
- 图的建立-深度DFS-广度BFS
- 用vc++穷举windows应用程序密码
- 张亚勤——从神童到微软全球副总裁
- ASM3