【ACM】P2006、P2007、P2008、P2009、P2010代码演示
2017-04-29 10:02
381 查看
【p2006问题描述】给你n个整数,求他们中所有奇数的乘积:
/** * 求奇数的乘积 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 92889 Accepted Submission(s): 57119 Problem Description 给你n个整数,求他们中所有奇数的乘积。 Input 输入数据包含多个测试实例,每个测试实例占一行,每行的第一个数为n,表示本组数据一共有n个, 接着是n个整数,你可以假设每组数据必定至少存在一个奇数。 Output 输出每组数中的所有奇数的乘积,对于测试实例,输出一行。 Sample Input 3 1 2 3 4 2 3 4 5 Sample Output 3 15 */
代码演示:
package ac; import java.util.Scanner; public class P2006 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int sum=1; for(int i=0;i<n;i++){ int temp=sc.nextInt(); if(temp%2!=0){ sum=sum*temp; } } System.out.println(sum); } } }
运行结果:
【p2007问题描述】给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和:
/** 平方和与立方和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 169171 Accepted Submission(s): 53722 Problem Description 给定一段连续的整数,求出他们中所有偶数的平方和以及所有奇数的立方和。 Input 输入数据包含多组测试实例,每组测试实例包含一行,由两个整数m和n组成。 Output 对于每组输入数据,输出一行,应包括两个整数x和y,分别表示该段连续的整数中所有偶数的平方和以及所有奇数的立方和。 你可以认为32位整数足以保存结果。 Sample Input 1 3 2 5 Sample Output 4 28 20 152 */
代码演示:
package ac; import java.util.Scanner; public class P2007{ public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int m=sc.nextInt(); int n=sc.nextInt(); /**此处必须判断m、n大小,因为只有这样才能确保一个m到n的序列值*/ if(m>n){ int temp; temp=m; m=n; n=temp; } int sum1=0; int sum2=0; for(int i=m;i<=n;i++){ if(i%2==0){ sum1=sum1+i*i; }else{ sum2=sum2+i*i*i; } } System.out.println(sum1+" "+sum2); } } }
运行结果:
【p2008问题描述】统计给定的n个数中,负数、零和正数的个数:
/** * 数值统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 105710 Accepted Submission(s): 51231 Problem Description 统计给定的n个数中,负数、零和正数的个数。 Input 输入数据有多组,每组占一行,每行的第一个数是整数n(n<100),表示需要统计的数值的个数,然后是n个实数; 如果n=0,则表示输入结束,该行不做处理。 Output 对于每组输入数据,输出一行a,b和c,分别表示给定的数据中负数、零和正数的个数。 Sample Input 6 0 1 2 3 -1 0 5 1 2 3 4 0.5 0 Sample Output 1 2 3 0 0 5 */
代码演示:
package ac; import java.util.Scanner; public class P2008 { public static void main(String[] args) { Scanner sc=new Scanner(System.in ); while(sc.hasNext()){ int n=sc.nextInt(); if(n==0){ System.exit(0); } int positive=0;//正数 int negative=0;//负数 int zero=0;//零 for(int i=0;i<n;i++){ double temp=sc.nextDouble();//注意题意中输入了一个double型值 if(temp>0){ positive++; }else if(temp<0){ negative++; }else{ zero++; } } System.out.println(negative+" "+zero+" "+positive); } } }
运行结果:
【p2009问题描述】数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和:
/** * 求数列的和 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 82255 Accepted Submission(s): 49930 Problem Description 数列的定义如下: 数列的第一项为n,以后各项为前一项的平方根,求数列的前m项的和。 Input 输入数据有多组,每组占一行,由两个整数n(n<10000)和m(m<1000)组成,n和m的含义如前所述。 Output 对于每组输入数据,输出该数列的和,每个测试实例占一行,要求精度保留2位小数。 Sample Input 81 4 2 2 Sample Output 94.73 3.41 */
代码演示:
package ac; import java.util.Scanner; public class P2009 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int n=sc.nextInt(); int m=sc.nextInt(); /**注意此处有个陷阱:数列的第一项为n ,因为总共为m项, 所以后边有m-1项,所以sum因该是从sum=n开始*/ double sum=n; double temp=n; for(int i=0;i<m-1;i++){ temp=Math.sqrt(temp); sum=sum+temp; } System.out.printf("%.2f",sum); System.out.println(); } } }
运行结果:
【p2010问题描述】现在要求输出所有在m和n范围内的水仙花数:
/** * 水仙花数 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 190659 Accepted Submission(s): 54493 Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: “水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=1^3+5^3+3^3。 现在要求输出所有在m和n范围内的水仙花数。 Input 输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。 Output 对于每个测试实例,要求输出所有在给定范围内的水仙花数, 就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个, 则要求从小到大排列在一行内输出,之间用一个空格隔开; 如果给定的范围内不存在水仙花数,则输出no; 每个测试实例的输出占一行。 Sample Input 100 120 300 380 Sample Output no 370 371 */
代码演示:
package ac; import java.util.Scanner; public class P2010 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int m=sc.nextInt(); int n=sc.nextInt(); int count=0; for(int i=m;i<=n;i++){ int a=i/100; int b=i%100/10; int c=i%100%10; int sum=a*a*a+b*b*b+c*c*c; /**每次当i==sum出现水仙花数的时候,进行格式化输出*/ if(i==sum){ count=count+1; /**第一个必须没有空格,当后边还有输出的时候其自动补空格,输出一个数之前补一个空格*/ if(count==1){ System.out.print(i); }else{ System.out.print(" "+i); } } } /**通过所得到的计数count,来判断是否有水仙花数*/ if(count==0){ System.out.print("no"); } System.out.println(); } } }
运行结果:
相关文章推荐
- Rising AntiVirus 2008/2009/2010 Local Privilege Escalation Exploit
- 在Visual Studio 2008/2010中同时调试托管代码与非托管代码.
- 【ACM】P2020、P2021、P2022、P2023、P2024代码演示
- Gym - 101411H Hotel in Ves Lagos 数位DP 2009-2010 ACM-ICPC, NEERC, Western Subregional Contest
- 2009-2010 ACM-ICPC, NEERC, Western Subregional Contest
- SQL Server 2008 Full Text Searching SSMS Demo(SQL2008全文检索演示代码)(来自msdn)
- 【ACM】P2011、P2012、P2013(*)、P2014代码演示
- 【ACM】P2000、P2001、P2002、P2003、P2004、P2005代码演示
- V-Ray最新中文汉化版下载2.00.02,适用于3dsmax 9.0/2008/2009/2010/2011所有版本,
- VRay 2.0 SP1 2.10.01 for 3ds max 9/2008/2009/2010/2011/2012 32/64位 顶渲简体中文版+英文版[中国室内设计论坛-室内人]
- 2008-2009 ACM-ICPC Northeastern European Regional Contest (NEERC 08) (2013区域赛练习)
- 【ACM】P2015(*)、P2016、P2017、P2018(*)、P2019代码演示
- 杭电ACm水仙花数2010谁能帮忙分析一下两段代码的区别;第二个通不过啊
- 苹果官网发布WWDC 2010视频、演示幻灯和示例代码
- 杭电ACm水仙花数2010谁能帮忙分析一下两段代码的区别;第二个通不过啊
- SQL SERVER 2008 数据库隔离级别代码演示
- 【ACM】P2030、P2031、P2032、P2033、P2034代码演示
- 【ACM】P1000、P10001、P1002、P1003代码演示
- 【ACM】P2025、P2026、P2027、P2028、P2029代码演示
- 2008 2009 2010 2011 去广告特别版 QQ下载合集