1001 A+B Format (20)

输入:两个数a,b,-1000000 <= a, b <= 1000000

输出:a+b,并以每3个用逗号隔开的形式展示。

思路一:

1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);判断sum==0时,则输出0;

2)然后将sum存到一个数组num[10]中,将sum数值的低位存到数组的低位(个位存在数组第1位),用一个while循环:num[i]=sum%10,sum=sum/10;i++;

3)将数组num[]从高位到低位进行输出,每逢3位输出逗号,即i%3==0.(注意,输出最后一位后不加逗号)

 1     int a,b;
2 int sum,i=0;//存放a+b的值
3 int num[10];
4 scanf("%d %d",&a,&b);
5
6 sum=a+b;
7 if(sum<0){
8 printf("-");
9 sum=-sum;}
10 else if(sum==0){
11 printf("0");}
12 while(sum>0){
13 num[i]=sum%10;
14 sum=sum/10;
15 i++;}
16 int j=0;
17 for(j=i-1;j>=0;j--){
18 printf("%d",num[j]);
19 if(j%3==0&&j!=0){
20 printf(",");}}

思路二:

1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);

2)判断sum>=1000000,输出printf("%d,%03d,%03d",sum/1000000,sum%1000000/1000,sum%1000);

sum>=1000,输出printf("%d,%03d",sum/1000,sum%1000);

其他情况,输出sum

    int a,b;
int sum;//存放a+b的值
scanf("%d %d",&a,&b);
sum=a+b;
if(sum<){
printf("-");
sum=-sum;}
if(sum>=){
printf("%d,%03d,%03d",sum/,sum%/,sum%);
}
else if(sum>=) {
printf("%d,%03d",sum/,sum%);
}
else{
printf("%d",sum);
}

思路三:

1)计算出a+b的值,赋给sum。判断sum<0,则先输出一个“”-”号,并将sum=-sum(转换为正值);

2)将sum转换成字符形式,判断sum>=1000000,在倒数第7位插入逗号,并在倒数第3位插入逗号;

sum>=1000,在倒数第3位插入逗号;其他情况,不作处理;

最后将处理后的字符进行输出

1005 Spell It Right (20 分)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String num[] = {"zero","one","two","three","four","five","six","seven","eight","nine"};
String N = input.next();
char[] n = N.toCharArray();
int sum =0,numLen=0;
int digit[] = new int[10];
for(int i=0;i<n.length;i++){
sum += n[i] - '0';
}
if(sum==0){
System.out.println(num[0]);
}else{
while(sum!=0){
digit[numLen++] = sum%10; //从低位到高位将每位存于digit中
sum /= 10;
}
}
for(int i=numLen-1;i>=0;i--){
System.out.print(num[digit[i]]);
if(i>0){
System.out.print(" ");
}
}
}
}

  

1008 Elevator (20 分)

import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int N = input.nextInt();
int time = 0;
int before = 0;
for(int i=0;i<N;i++){
int now = input.nextInt();
if(now > before){
time += (now - before)*6;
}else {
time += (before - now)*4;
}
time+=5;
before=now;
}
System.out.println(time);
}
}

  

1009 Product of Polynomials

注意:有多个类,要提交OJ时, 可以将多个类写入一个文件。但只有Main类使用public修饰。

import java.text.DecimalFormat;
import java.util.Scanner;
class Poly {
public int exp;
public double cof;
}
public class Main {
//1009 Product of Polynomials
public static void main(String[] args){
Scanner input = new Scanner(System.in);
Poly[] poly = new Poly[1001];
double[] ans = new double[2001];
int n = input.nextInt();
for(int i=0;i<n;i++){
poly[i]= new Poly();
poly[i].exp = input.nextInt();
poly[i].cof = input.nextDouble();
}
int m = input.nextInt();
for(int i=0;i<m;i++){
int exp = input.nextInt();
double cof = input.nextDouble();
for(int j=0;j<n;j++){
ans[exp+poly[j].exp] += cof*poly[j].cof;
}
}
int num=0;
for(int i=0;i<2001;i++){
if(ans[i]!=0.0){
num++;
}
}
System.out.print(num);
DecimalFormat format = new DecimalFormat("0.0");
for(int i=2000;i>=0;i--){
if(ans[i]!=0.0){
System.out.print(" "+i+" "+format.format(ans[i]));
}
}
} }

  

1011 World Cup Betting (20 分)
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] game = {"W","T","L"};
double profit=1;
double[] a = new double[3];
for(int i=0;i<3;i++){
a[0] = input.nextDouble();
a[1] = input.nextDouble();
a[2] = input.nextDouble();
int j=max(a);
profit *= a[j];
System.out.print(game[j]+" ");
}
profit = (profit*0.65-1)*2;
DecimalFormat df = new DecimalFormat("0.00");
System.out.print(df.format(profit));
}
public static int max(double a[]){
double max=a[0];
int maxi=0;
for(int i=1;i<a.length;i++){
if(a[i]>max){
max=a[i];
maxi=i;
}
}
return maxi;
}
}

  

1042 Shuffling Machine

import java.util.Scanner;
public class Main {
//Shuffling Machine
public static void main(String[] args){
int N=54;
char[] mp={'S','H','C','D','J'};//牌的编号与花色的关系
int[] start = new int[N+1];
int[] next = new int[N+1];
int[] end = new int[N+1];
for(int i=1;i<=N;i++){
start[i]=i; //初始化牌的编号
}
Scanner input = new Scanner(System.in);
int K = input.nextInt(); //输入变换的次数
for(int i=1;i<=N;i++){
next[i]=input.nextInt(); //输入每个位置上的牌在操作后的位置
} for(int step=0;step<K;step++){ //执行K次操作
for(int i=1;i<=N;i++){
end[next[i]]=start[i]; //把第i个位置的牌的编号存于位置next[i];
}
for(int i=1;i<=N;i++){
start[i]=end[i]; //把end数组赋值给start数组,以供下次操作使用
}
} for(int i=1;i<=N;i++){
if(i!=1){
System.out.print(" ");
}
System.out.print(mp[(start[i]-1)/13]); //输出花色
System.out.print((start[i]-1)%13+1); //输出编号
} }
}

  

1065 A+B and C (64bit) (20 分)
import java.util.Scanner;
public class Main {
//1065 A+B and C (64bit)
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int T = input.nextInt();
for(int i=1;i<=T;i++){
long A = input.nextLong();
long B = input.nextLong();
long C = input.nextLong();
boolean flag;
long res = A+B;
if(A>0&&B>0&&res<0) //正溢出
flag=true;
else if(A<0&&B<0&&res>=0) //负溢出
flag=false;
else if(res>C) //无溢出时,A+B>C时为true;
flag=true;
else //无溢出时,A+B<=C时为false;
flag=false;
System.out.println("Case #"+i+": "+flag);
}
}
}

 

 

  

PAT-A Java实现的更多相关文章

  1. PAT(B) 1040 有几个PAT(Java)

    题目链接:1040 有几个PAT (25 point(s)) 题目描述 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T):第二个 ...

  2. PAT—优化Java从控制台读取信息的速度

    PAT对Scanner类很不友好,会花费大量时间,导致运行时间超时.可采用下列代码优化时间 BufferedReader bf = new BufferedReader(new InputStream ...

  3. PAT 乙级 1040.有几个PAT C++/Java

    题目来源 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位( ...

  4. 201521123051《java程序设计》 第一周学习总结

    1. 本章学习总结 Java可以算是从C++发展而来的,因此Java与C语言的语法应该是比较类似的.但通过初步学习1.java语言的发展过程 2.java的特点 系统简单,功能齐备. 3.java的三 ...

  5. Java的暑期作业

    Java暑期作业 一.<恶意>读书笔记 <恶意>是日本作家东野圭吾写的推理小说之一.看完后不禁为东野先生的奇特的写作手法以及书中所展现的人性的丑恶所震撼.我认为这本书相较< ...

  6. JNI笔记之 初体验

    Java Native Interface提供了java与c语言写的代码之间互相调用的方式.在c语言方面jni.h中声明了许多的类型和方法,有很多java的数据类型和c语言类型的转换方法函数. jav ...

  7. jstring 和char 之间的转换方法

    //jstring to char* char* jstringTostring(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsst ...

  8. Android驱动学习-app调用内核驱动过程(驱动框架回顾)

    考研已经过去了,android驱动的学习也断了半年多了,现在重新捡起来学习,回顾一下Android驱动的大体框架. Android系统的核心是java,其有一个David虚拟机.Android-app ...

  9. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  10. PAT 1003. 我要通过!(20) JAVA

    参考http://blog.csdn.net/bin8632/article/details/50216297 答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答 ...

随机推荐

  1. Linux入门-2 VIM基础

    启动与退出 模式 进入插入模式 命令 删除.复制.粘贴 光标控制 查找与替换 EX模式 启动与退出 vim只启动vim vim <filename>打开文件,如果不存在则新建 模式 Nor ...

  2. QT的文件查找

    https://blog.csdn.net/hustyangju/article/details/17784007 http://www.cppblog.com/biao/archive/2011/1 ...

  3. Struts学习-Hibernate2

    一. 1.配置 <!-- hibernate-core --> <dependency> <groupId>org.hibernate</groupId> ...

  4. ojdbc14_g.jar与ojdbc14.jar区别

    在低级JDK版本1.2与1.3中使用的驱动,class12.jar,虽然实际上在1.4,1.5中使用大部分情况也是OK的 ojdbc14.jar (1,545,954 bytes) - classes ...

  5. JavaScript的DOM_其他的扩展

    一.呈现模式 从 IE6 开始开始区分标准模式和混杂模式(怪异模式),主要是看文档的声明. IE 为document 对象添加了一个名为 compatMode 属性,这个属性可以识别 IE 浏览器的文 ...

  6. Allocate exception for servlet ValidateUsernameServlet 异常

    如果eclipse无法对类文件进行编译那么运行时就会发生 Allocate exception for servlet ValidateUsernameServlet 异常,说找不到类.

  7. YII中使用SOAP一定要注意的一些东西

    SiteController.php 在Yii框架下使用soap接口的时候,需要注意几个问题:: 1 服务器要打开soap功能,在phpinfo里搜soap,如果已经打开了的话有个大标题就是SOAP2 ...

  8. Codeforces 955C - Sad powers(数论 + 二分)

    链接: http://codeforces.com/problemset/problem/955/C 题意: Q次询问(1≤Q≤1e5),每次询问给出两个整数L, R(1≤L≤R≤1e18),求所有符 ...

  9. [19/03/30-星期六] IO技术_四大抽象类_ 字节流( 字节输入流 InputStream 、字符输出流 OutputStream )_(含字节文件缓冲流)

    一.概念及分类 InputStream(输入流)/OutputStream(输出流)是所有字节输入输出流的父类 [注]输入流和输出流的是按程序运行所在的内存的角度划分的 字节流操作的数据单元是8的字节 ...

  10. 让Git不再难学

    写在前面 在团队做过软件开发的,版本控制必是不可或缺的一项.目前,版本控制主要分为集中式版本控制系统和分布式版本控制系统 ,即大家熟知的SVN和Git.Git是当下最流行的分布式版本控制系统,故,今天 ...