PAT-A Java实现
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位插入逗号;其他情况,不作处理;
最后将处理后的字符进行输出
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]));
}
}
} }
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); //输出编号
} }
}
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实现的更多相关文章
- PAT(B) 1040 有几个PAT(Java)
题目链接:1040 有几个PAT (25 point(s)) 题目描述 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位§,第 4 位(A),第 6 位(T):第二个 ...
- PAT—优化Java从控制台读取信息的速度
PAT对Scanner类很不友好,会花费大量时间,导致运行时间超时.可采用下列代码优化时间 BufferedReader bf = new BufferedReader(new InputStream ...
- PAT 乙级 1040.有几个PAT C++/Java
题目来源 字符串 APPAPT 中包含了两个单词 PAT,其中第一个 PAT 是第 2 位(P),第 4 位(A),第 6 位(T):第二个 PAT 是第 3 位(P),第 4 位(A),第 6 位( ...
- 201521123051《java程序设计》 第一周学习总结
1. 本章学习总结 Java可以算是从C++发展而来的,因此Java与C语言的语法应该是比较类似的.但通过初步学习1.java语言的发展过程 2.java的特点 系统简单,功能齐备. 3.java的三 ...
- Java的暑期作业
Java暑期作业 一.<恶意>读书笔记 <恶意>是日本作家东野圭吾写的推理小说之一.看完后不禁为东野先生的奇特的写作手法以及书中所展现的人性的丑恶所震撼.我认为这本书相较< ...
- JNI笔记之 初体验
Java Native Interface提供了java与c语言写的代码之间互相调用的方式.在c语言方面jni.h中声明了许多的类型和方法,有很多java的数据类型和c语言类型的转换方法函数. jav ...
- jstring 和char 之间的转换方法
//jstring to char* char* jstringTostring(JNIEnv* env, jstring jstr) { char* rtn = NULL; jclass clsst ...
- Android驱动学习-app调用内核驱动过程(驱动框架回顾)
考研已经过去了,android驱动的学习也断了半年多了,现在重新捡起来学习,回顾一下Android驱动的大体框架. Android系统的核心是java,其有一个David虚拟机.Android-app ...
- Spark案例分析
一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...
- PAT 1003. 我要通过!(20) JAVA
参考http://blog.csdn.net/bin8632/article/details/50216297 答案正确"是自动判题系统给出的最令人欢喜的回复.本题属于PAT的"答 ...
随机推荐
- python filter&sorted
filter filter()接收一个函数和一个序列和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素在一个list中, ...
- SAP CRM里Lead通过工作流自动创建Opportunity的原理讲解
(1) 在SAP CRM里创建一个Lead后,会观察到有一个Opportunity自动生成,这是通过什么后台逻辑实现的呢? 检查前台日志或者后台事务码SLG1,发现有很多属于用户WF-BATCH的日志 ...
- 021logging模块
##importlogging logging.debug('debug message')logging.info('info message')logging.warning('warning ...
- 财务软件(gnucash)
apt-get install gnucash
- 关于函数指针与c++多态
原文 https://www.cnblogs.com/zhchngzng/p/4013031.html 虚函数是实现多态的重要元素,请看: class A { public: void a0(){c ...
- iOS的KVO使用和轻量级封装
KVO的使用方法 注冊 [object addObserver:observer forKeyPath:@"text" options:NSKeyValueObservingOpt ...
- python SQL注入测试脚本(更新中)
import requests import json import warnings warnings.filterwarnings("ignore") url = 'https ...
- vue - 简单实例(vue-router + webpack + vuex)
分享 + 实践 基于公司部分产品技术栈转型使用vue,部分同事需要学习一下,快速上手,那么我很荣幸的成为了给大家分享vue技术栈的‘ ’导师‘,在这里我分享一下: 讲解大纲为:(我是有一份PPT的, ...
- Mac OS系统下配置hosts的方法
首先,介绍下什么是hosts Hosts是一个没有扩展名的系统文件,可以用系统自带的记事本等工具打开,作用就是将一些常用的网址域名与其对应的IP地址建立一个关联,当用户在浏览器输入一个需要登录的网址时 ...
- loading等待效果
效果预览:这两个球一直在转,不能进行其他操作 div放在最外层 <div id="loadingImg" style="height: 100%;width: 10 ...