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. 【jQuery】jQuery中的事件捕获与事件冒泡

    在介绍之前,先说一下JavaScript中的事件流概念.事件流描述的是从页面中接受事件的顺序.   一.事件冒泡( Event Bubbling)            IE 的事件流叫做事件冒泡,即 ...

  2. python 函数&条件,循环

    条件if <条件判断1>: <执行1>elif <条件判断2>: <执行2>elif <条件判断3>: <执行3>else: & ...

  3. GO语言(六)接口使用

    <music> |------<src> |-------<library> |-------manager.go |-------manager_test.go ...

  4. 在前端页面展示Markdown文件

    常我们都会在GitHub上浏览很多的readme文件,这些都是Markdown语法写成的Markdown文件,HTML中并没有用于展示Markdown文件的元素,那么为什么可以在前端展示呢? 有别于G ...

  5. bootstrap table footerFormatter用法 统计列求和 sum、average等

    其实上一篇blog里已经贴了代码,简单解释一下吧: 1.showFooter: true,很重要,设置footer显示: $(cur_table).bootstrapTable({ url: '/et ...

  6. GCD学习(五) dispatch_barrier_async

    先看段代码 dispatch_queue_t concurrentQueue = dispatch_queue_create("my.concurrent.queue", DISP ...

  7. Axure RP 8 学习记录

    一.Axure RP 简介 Axure是一个专业的快速原型设计工具.能够快速创建应用软件或Web网站的线框图.流程图.原型和规格说明文档. 二.Axure RP下载 1.下载安装包 https://w ...

  8. matlab中boxplot字体大小设置

    网上找到的:set(findobj(gca,'Type','text'),'FontSize',18) boxplot() uses the default axes labeling for the ...

  9. mybatis映射文件参数处理 #{}取值与${}取值的区别

    #{}:是以预编译的映射,将参数设置到sql语句中,和jdbc的preraredStatement一样,使用占位符,防止sql注入. ${}:取出的值会直接拼装在sql中,会有安全问题. 大多数情况下 ...

  10. mongo删除、添加分片

    MongoDB 分片的原理.搭建.应用   一.概念: 分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程.将数据分散到不同的机器上,不需要功能强大的服务器就可以存储更多的数据和处 ...