第12周笔记

重写acm题目

2000题

Problem Description

输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

Input

输入数据有多组,每组占一行,有三个字符组成,之间无空格。

Output

对于每组输入数据,输出一行,字符中间用一个空格分开。

Sample Input

qwe

asd

zxc

Sample Output

e q w

a d s

c x z

题目截图:

图片发自简书App

代码:

#include "stdio.h"

void main()

{

    char a,b,c,t;

    while((scanf("%c%c%c",&a,&b,&c))!=EOF){

    getchar();

    if(a>b){

      t=a;a=b;b=t;

    }

    if(a>c){

      t=a;a=c;c=t;

    }

    if(b>c){

      t=b;b=c;c=t;

    }

    printf("%c %c %c\n",a,b,c);

    }

}

图片发自简书App

运行截图:

图片发自简书App

2001题

Problem Description

输入两点坐标(X1,Y1),(X2,Y2),计算并输出两点间的距离。

Input

输入数据有多组,每组占一行,由4个实数组成,分别表示x1,y1,x2,y2,数据之间用空格隔开。

Output

对于每组输入数据,输出一行,结果保留两位小数。

Sample Input

0 0 0 1

0 1 1 0

Sample Output

1.00

1.41

题目:

图片发自简书App

代码:

import java.util.Scanner;

import java.io.BufferedInputStream;

public class Main {

public static void main(String[] args){

Scanner sc=new Scanner(new BufferedInputStream(System.in));

while(sc.hasNext()){

double []a=new double[4];

for(int i=0;i<4;++i){

a[i]=sc.nextDouble();

}

double result=(Math.pow(a[2]-a[0],2)+Math.pow(a[3]-a[1], 2));

double end=Math.sqrt(result);

System.out.printf("%.2f",end);

System.out.println("");

}

}

}

代码截图:

图片发自简书App

运行截图:

图片发自简书App


2005题

Problem Description

给定一个日期,输出这个日期是该年的第几天。

Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input

,另外,可以向你确保所有的输入数据是合法的。

Output

对于每组输入数据,输出一行,表示该日期是该年的第几天。

Sample Input

1985/1/20

2006/3/12

Sample Output

20

71

图片发自简书App


注:split() 方法主要用于把一个字符串 分割成 字符串数组。

1,进行一定位置的截取,上面是以 : 进行字符串分割的。

2,获取到字符串数组。

3,根据需求,获取自己所需要的元素。

思路:这道题将输入的年月日格式用年/月/日,在用split分别获取年,月,日,进而进行天数的加减,我这里将每个月的天数用一个数组装起来,按非闰年的方式,二月是记28天,先用for循环将每个月的天数相加,最后再加上面的日,得到总天数,再用if判断是否闰年,是就总天数加1。从而得到结果!

代码:

import java.util.Scanner;

import java.io.BufferedInputStream;

public class Main {

public static void main(String[] args) {

  Scanner sc=new Scanner(new BufferedInputStream(System.in));

  int []n={31,28,31,30,31,30,31,31,30,31,30,31};

  while(sc.hasNext()){

  int Y,M,d;

  String []YMd;

  int sum=0;

  YMd=sc.nextLine().split("/");

  Y=Integer.parseInt(YMd[0]);

  M=Integer.parseInt(YMd[1]);

  d=Integer.parseInt(YMd[2]);

  for(int i=0;i<M-1;i++){

    sum+=n[i];

  }

  sum+=d;

  if(M>2&&(Y%400==0||(Y%100!=0&&Y%4==0))){

    sum++;

  }

  System.out.printf("%d",sum);

  System.out.println("");

  }

}


}

截图:

图片发自简书App

图片发自简书App
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 13,228评论 0 13
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 8,587评论 0 9
  • http://spark.apache.org/docs/latest/api/python/index.html...
    mpro阅读 11,327评论 0 4
  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 9,154评论 0 2
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 6,028评论 0 2

友情链接更多精彩内容