(部分转载,部分原创)java大数类(2)

NYOJ 773  开方数

http://acm.nyist.net/JudgeOnline/problem.php?pid=773

 1 import java.util.Scanner;
 2 
 3 public class Main{
 4     public static void main(String[] args){
 5         int n;
 6         double p;
 7         Scanner cin = new Scanner(System.in);
 8         while(true){
 9             n = cin.nextInt();
10             p = cin.nextDouble();
11             if(n == 0 && p == 0) break;
12             System.out.printf("%.0f\n", Math.pow(p, 1.0/n));
13         }
14     }
15 }
View Code

 

POJ 1001 Exponentiation

http://poj.org/problem?id=1001

 1 import java.io.*;
 2 import java.math.*;
 3 import java.util.*;
 4 import java.text.*;
 5 
 6 public class Main 
 7 {
 8     public static void main(String[] args) 
 9     {
10         Scanner cin = new Scanner(System.in);
11         while(cin.hasNext())
12         {
13        BigDecimal R = cin.nextBigDecimal();
14        int n = cin.nextInt();
15          String ans = R.pow(n).stripTrailingZeros().toPlainString();
16          if(ans.startsWith("0"))
17              ans = ans.substring(1);
18          System.out.println(ans);
19        }
20     }
21 }
View Code

 

HDU 1042  N!

http://acm.hdu.edu.cn/showproblem.php?pid=1042

java版:

 1 3
 2 4
 3 5
 4 6
 5 7
 6 8
 7 9
 8 10
 9 11
10 12
11 13
12 14
13 15
14 16
15 17
16 18
17 import java.util.Scanner;
18 import java.math.BigInteger;
19 public class Main{
20     public static void main(String[] args){
21         Scanner input = new Scanner(System.in);
22         int A, i;
23         while(input.hasNext())
24         {    
25             A = input.nextInt();
26             BigInteger B = BigInteger.ONE;
27             for(i=1; i<=A; i++)
28             {
29                 B = B.multiply(BigInteger.valueOf(i));
30             }
31             System.out.println(B);
32         }
33     }
34 }
View Code

C++版:

 1 3
 2 4
 3 5
 4 6
 5 7
 6 8
 7 9
 8 10
 9 11
10 12
11 13
12 14
13 15
14 16
15 17
16 18
17 19
18 20
19 21
20 22
21 23
22 24
23 25
24 26
25 27
26 28
27 29
28 30
29 31
30 32
31 33
32 34
33 35
34 36
35 37
36 38
37 39
38 40
39 41
40 42
41 43
42 44
43 45
44 46
45 47
46 48
47 49
48 #include<iostream>
49 #include<string.h>
50 #include<stdio.h>
51 #include<ctype.h>
52 #include<algorithm>
53 #include<stack>
54 #include<queue>
55 #include<set>
56 #include<map>
57 #include<math.h>
58 #include<vector>
59 #include<deque>
60 #include<list>
61 #define INF 0x7fffffff
62 #define inf 0x3f3f3f3f
63 #define maxn 40000
64 using namespace std;
65 int a[maxn];
66 int main()
67 {
68     int n;
69     int s;
70     while(scanf("%d",&n)!=EOF)
71     {
72         memset(a,0,sizeof(a));
73         a[0]=1;
74         for(int i=2; i<=n; i++)
75         {
76             int c=0;
77             for(int j=0; j<maxn; j++)
78             {
79                 s=a[j]*i+c;
80                 a[j]=s%10;
81                 c=s/10;
82             }
83         }
84         int p;
85         for(int i=maxn; i>=0; i--)
86             if(a[i])
87             {
88                 p=i;
89                 break;
90             }
91         for(int i=p; i>=0; i--)
92             printf("%d",a[i]);
93         printf("\n");
94     }
95     return 0;
96 }
View Code

 

 

FZOJ 1602  Best results

http://acm.fzu.edu.cn/problem.php?pid=1602

 1 import java.io.*;
 2 import java.math.*;
 3 import java.util.*;
 4 import java.text.*;
 5 
 6 public class Main 
 7 {
 8     public static void main(String[] args) 
 9     {
10         Scanner cin = new Scanner(System.in);
11         while(cin.hasNext())
12         {
13           int t = cin.nextInt();
14           BigDecimal ans = BigDecimal.ONE;
15           while(t-- > 0)
16             {
17            String str = cin.next();
18            int l = str.length();
19            str = str.substring(0, l - 1);
20            int tep = Integer.parseInt(str);
21           BigDecimal Tep = BigDecimal.valueOf(tep);
22            Tep = Tep.divide(BigDecimal.valueOf(100));
23            ans = ans.multiply(Tep);
24             }
25           System.out.println(ans.stripTrailingZeros().toPlainString());
26         }
27     }
28 }
View Code

 

 

ZOJ  3549   Little Keng

一开始超时了,百撕不得骑姐,后来意识到可能JAVA计算大数和小数的时候,复杂度还是差别挺大的,虽然理论上都是O(1)的操作,但是当数的规模增长到一定级数,运算效率的差别就显露出来了。

不超时的关键就是快速幂的时候加上取模的操作。

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3549

 1 import java.math.*;
 2 import java.util.*;
 3 
 4 public class Main {
 5     static BigInteger power(BigInteger p,BigInteger n,BigInteger m)            //快速幂
 6     {
 7         BigInteger sq=BigInteger.ONE;
 8         while(n.compareTo(BigInteger.ZERO)>0)                    //while(n>0)
 9         {
10             if(n.mod(BigInteger.valueOf(2)).compareTo(BigInteger.ONE)==0)    //if(n%2==1)
11                 sq=sq.multiply(p).mod(m);                //    sq=(sq*p)%m;
12             p=p.multiply(p).mod(m);                        //p=(p*p)%m;
13             n=n.divide(BigInteger.valueOf(2));                //n=n/2;
14         }
15         return sq.mod(m);
16     }
17     static boolean judge(int m,int n,int k)
18     {
19         BigInteger mod=BigInteger.ONE,ans=BigInteger.ZERO;
20         int i;
21         for(i=1;i<=k;i++)                            //10^k
22             mod=mod.multiply(BigInteger.valueOf(10));
23         for(i=1;i<=m;i++)                            //1^n+2^n+3^n+...+m^n
24         {
25             BigInteger a,b;
26             a=BigInteger.valueOf(i);
27             b=BigInteger.valueOf(n);
28             ans=(ans.add(power(a,b,mod))).mod(mod);
29         }
30         if(ans.mod(mod).compareTo(BigInteger.ZERO)==0) return true;
31         else return false;
32     }
33     public static void main(String args[])
34     {
35         Scanner cin=new Scanner(System.in);
36         int i,m,n;
37         while(cin.hasNext())
38         {
39             m=cin.nextInt();
40             n=cin.nextInt();
41             for(i=1;;i++)
42             {
43                 if(judge(m,n,i)) continue;
44                 else break;
45             }
46             System.out.println(i-1);
47         }
48     }
49 }
View Code

这是正解。。。

 

 1 import java.io.*;
 2 import java.math.*;
 3 import java.util.*;
 4 import java.text.*;
 5 
 6 class Main 
 7 {
 8    /* static BigInteger Pow(BigInteger a, int b)
 9     {
10         BigInteger ans = BigInteger.ONE;
11         while(b > 0)
12         {
13             if(b % 2 == 1)
14                 ans = ans.multiply(a);
15             ans = ans.multiply(ans);
16             b >>= 1;
17             //b /= 2; 
18         }
19         return ans;
20     } */
21 
22 
23      static BigInteger power(BigInteger p,BigInteger n)         //快速幂  
24     {  
25         BigInteger sq=BigInteger.ONE;  
26         while(n.compareTo(BigInteger.ZERO)>0)                    //while(n>0)  
27         {  
28             if(n.mod(BigInteger.valueOf(2)).compareTo(BigInteger.ONE)==0)   //if(n%2==1)  
29                 sq=sq.multiply(p);               //  sq=(sq*p)%m;  
30             p=p.multiply(p);                     //p=(p*p)%m;  
31             n=n.divide(BigInteger.valueOf(2));              //n=n/2;  
32         }  
33         return sq;  
34     } 
35 
36     public static void main(String[] args) 
37     {
38         Scanner cin = new Scanner (System.in);
39         while(cin.hasNext())
40         {
41             int m = cin.nextInt();
42             int n = cin.nextInt();
43 
44             //System.out.println(Pow(BigInteger.TEN, 1));
45 
46             BigInteger ans = BigInteger.ZERO;
47             for(int i = 1; i <= m; ++i)
48             {
49                 BigInteger I = BigInteger.valueOf(i);
50                 BigInteger N = BigInteger.valueOf(n);
51                 ans = ans.add(power(I, N));
52               //ans = ans.add(Pow(I, n));
53             }
54             int cnt = 0;
55             while(ans.mod(BigInteger.TEN).compareTo(BigInteger.ZERO) == 0)
56             {
57                 ans = ans.divide(BigInteger.TEN);
58                 ++cnt;
59             }
60                 
61           System.out.println(cnt);   
62         }
63         //System.out.println("Hello World!");
64     }
65 }
View Code

这是TLE的代码。。。

转载于:https://www.cnblogs.com/qiucz/p/4396848.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/574678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python3 logging com1_python-logging-基础(1)

在执行用例的时候&#xff0c;往往会遇到各种问题&#xff0c;遇到问题后很难去定位import loggingclass Logs:def __init__(self,filepath,name):#self.namename#self.filepathfilepathself.configRead_config(Config_Http)#重新定义日志名字self.loggerlogging.getLogger(sel…

python 复数求模_Python基础语法知识汇总(学习党的最爱!)

本文章包含了Python一系列基本知识&#xff0c;其中包括&#xff1a;基本数据类型&#xff08;整数&#xff0c;浮点数&#xff0c;复数&#xff0c;字符串&#xff09;&#xff1b;分支语句&#xff1b;异常处理&#xff1b;函数&#xff1b;局部变量与全局变量&#xff1b;递…

JAVA装mysql_已经安装了mysql,怎么能在java程序里使用SQL?

展开全部1、安装62616964757a686964616fe4b893e5b19e31333335323437SQLServer2000安装SQLServer2000补丁SP3安装SQLServer2000 for SP3的驱动程序(先打补丁sp3&#xff0c;再安装针对sp3的驱动程序&#xff0c;安装补丁时&#xff0c;为保险起见&#xff0c;两种验证方式的都装…

用对工具,抖音、某站视频轻松下载~

相信大部分小伙伴都有过这样的困扰&#xff0c;平时我们在刷短视频的时候就发现一段我们需要的视频。想下载时才发现&#xff0c;“保存”按钮是灰色的。 这个时候我们可以通过复制视频链接的方式来下载视频。下面给大家介绍四种万能视频下载工具&#xff0c;大家记得点赞收藏再…

flask 上传excel 前端_flask-restful编写上传图片api

Flask-RESTful是用于快速构建REST API的Flask扩展。我最近在使用Flask-Restful Vue.js写一个轻量博客时有一个前端后端上传图片的需求。在Flask-Restful的官方文档中并没有相关的内容。下面是我谷歌查找资料的总结。引入FileStorageflask-restful的参数解析中并没有文件类型&a…

qdir 类似工具_qdir 类似工具_支持 Win8.1,全能资源管理器 Q-Dir 5.74 发布

Q-Dir是一款帮助用户管理本地文件和文档的工具。支持快速访问定位本地磁盘、网络驱动器、USB移动设备及其他存储设备中的文件或文档。依靠强大的Quadro-View技术&#xff0c;使得Q-Dir成为一款优秀的文件管理工具。Q-Dir文件管理软件特色&#xff1a;• 收藏夹&#xff1a;快速…

面试题:求所占字符

/* 在32位系统下&#xff0c;分别定义如下两个变量&#xff1a;char *p[10],char(*p1)[10],sizeof(p),sizeof(p1)分别值为___________。 */ #include <stdio.h> #include <stdlib.h>void main() {char *p[10],(*p1)[10],p2[10],p3;printf("%d,%d,%d,%d,%d,%d&…

python pyquery安装_win7下python安装pyquery

安装pyquery之前首先要明确一点&#xff0c;easyinstall 是一款python包管理器&#xff0c;类似于node的npm&#xff0c;用于安装python的扩展包&#xff0c;它安装的包是以*.egg的方式。要安装pq需要经历以下步骤&#xff1a;1&#xff1a;下载easyinstall设置环境变量&#x…

织梦直接往数据库写入数据

x: 不是必须的 1: 值为1 0: 值为0转载于:https://www.cnblogs.com/bushe/p/4425298.html

wshttpbinding java_WCF自定义用户账号密码之WCF系结模式wsHttpBinding的Java调用

再回到编辑Web服务属性设定画面﹐刚刚所点击的[使用开发默认值]的复选框如果已经有被勾选了﹐请将勾选取消。然后先离开编辑Web服务属性设定画面。1.7. 加入CallbackHandler 档案这里需要加入一个继承CallbackHandler的档案TrustStoreCallbackHandler.javapublic class TrustSt…

android指纹java_Android

Android M指纹的资料太少&#xff0c;经过一段时间阅读原生Android代码&#xff0c;写了以下例子&#xff0c;贡献出来给需要帮助的人。以下内容基于64位的高通CPU&#xff0c;搭载fpc1020芯片&#xff0c;此部分代码在原生android上做了更改&#xff0c;以应付工厂指纹的测试。…

about-ie下模拟input file上传功能失效

Q&#xff1a;IE9下file提交到iframe中&#xff0c;load一直不触发&#xff0c;其他高级浏览器均无此问题 解决方案&#xff1a;不使用js模拟 input click事件&#xff0c;取而代之的是把真实的input设置为要触发元素的大小&#xff0c;进行触发onchange原因分析&#xff1a;低…

java把收集的数据节点_java面试题收集(04)

1、rebbitmq的使用场景有哪些&#xff1f;(1)单发送单接受使用场景&#xff1a;简单的发送与接受&#xff0c;没有特别的处理。(2)单发送多接受使用场景&#xff1a;一个发送端&#xff0c;多个接收端&#xff0c;如分布式的任务发布&#xff0c;要保证消息发送的可靠性&#x…

go java gc_图解Golang的GC垃圾回收算法

虽然Golang的GC自打一开始&#xff0c;就被人所诟病&#xff0c;但是经过这么多年的发展&#xff0c;Golang的GC已经改善了非常多&#xff0c;变得非常优秀了。以下是Golang GC算法的里程碑&#xff1a;v1.1 STWv1.3 Mark STW, Sweep 并行v1.5 三色标记法v1.8 hybrid write bar…

java wps linux 安装_ubuntu安装Java开发环境

1. 从sun主页JDK for Linux版本。这里的是jdk-6u6--i586.bin.2. 用root用户登录ubuntu&#xff0c;或是在普通用户下用su命令切换用户。切换到所需的安装目录。类型&#xff1a;cd 例如&#xff0c;要在 /usr/java/ 目录中 安装软件&#xff0c;请键入&#xff1a;cd /usr…

考研复试考java_2019考研复试经验帖:过来人谈5件“小事”

关于复试&#xff0c;决定这你的命运&#xff0c;考生一定要好好把握。关于复试&#xff0c;你做好前期功课&#xff0c;足够了解了吗?下面新东方在线分享一位过来人的经验之谈&#xff0c;给大家最走心的忠告~~▶先来说说复试规则。在复试之前学校会公布学校的复试分数线&…

Hadoop2源码分析-RPC机制初识

1.概述 上一篇博客&#xff0c;讲述Hadoop V2的序列化机制&#xff0c;这为我们学习Hadoop V2的RPC机制奠定了基础。RPC的内容涵盖的信息有点多&#xff0c;包含Hadoop的序列化机制&#xff0c;RPC&#xff0c;代理&#xff0c;NIO等。若对Hadoop序列化不了解的同学&#xff0c…

贪心 BestCoder Round #39 1001 Delete

题目传送门 1 /*2 贪心水题&#xff1a;找出出现次数>1的次数和res&#xff0c;如果要减去的比res小&#xff0c;那么总的不同的数字tot不会少&#xff1b;3 否则再在tot里减去多余的即为答案4 用set容器也可以做&#xff0c;思路一样5 */6 #include &l…

在ubuntu上搭建开发环境9---Ubuntu删除ibus出现的问题及解决

删除 ibus输入法&#xff1a;  sudo apt-get install ibus 我们会遇到下面的问题 Ubuntu 14.04 系统设置很多选项消失。 其实遇到这个问题的一个最主要的原因是之前执行过卸载ibus输入法的操作&#xff0c;所以为了避免这个问题请不要卸载ibus输入法&#xff0c;大家依然可以…

HDU 3951 (博弈) Coin Game

先考虑两种简单的情况&#xff1a; 如果先手能一次把硬币拿完&#xff0c;即 k > n &#xff0c;那么先手胜如果每次只能拿一个硬币&#xff0c; 即 k 1 &#xff0c;那么如果有奇数个硬币先手胜&#xff0c;如果有偶数个硬币后手胜。剩下的情况就是先手一次拿不完&#xf…