首页
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
Search
1
职教云小助手重构更新,职教云助手最新版下载地址【已和谐】
13,374 阅读
2
职教云-智慧职教,网课观看分析(秒刷网课)
10,986 阅读
3
gradle-5.4.1-all.zip下载
8,877 阅读
4
职教云-智慧职教,签到补签分析(逆天改命系列)
7,835 阅读
5
一个优秀的程序员从写文档开始:免费领14个月语雀云笔记会员
6,874 阅读
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
登录
/
注册
Search
Lan
累计撰写
624
篇文章
累计收到
617
条评论
首页
栏目
学习笔记
Web
Python
转载文章
算法刷题
JS逆向
综合笔记
安卓
物联网
Java
C
资源收集
软件收藏
网络资源
影视专辑
TED英语角
随便写写
随手拍
页面
畅所欲言
友情链接
壁纸大全
数据统计
推荐
工具箱
在线白板
搜索到
114
篇与
的结果
2020-03-16
Java中printf的用法总结
printf的格式控制的完整格式: % - 0 m.n l或h 格式字符 下面对组成格式说明的各项加以说明: ①%:表示格式说明的起始符号,不可缺少。 ②-:有-表示左对齐输出,如省略表示右对齐输出。 ③0:有0表示指定空位填0,如省略表示指定空位不填。 ④m.n:m指域宽,即对应的输出项在输出设备上所占的字符数。N指精度。用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。 ⑤l或h:l对整型指long型,对实型指double型。h用于将整型的格式字符修正为short型。 ------------------------------------格式字符 格式字符用以指定输出项的数据类型和输出格式。 ①d格式:用来输出十进制整数。有以下几种用法: %d:按整型数据的实际长度输出。 %md:m为指定的输出字段的宽度。如果数据的位数小于m,则左端补以空格,若大于m,则按实际位数输出。 %ld:输出长整型数据。 ②o格式:以无符号八进制形式输出整数。对长整型可以用"%lo"格式输出。同样也可以指定字段宽度用“%mo”格式输出。 ③x格式:以无符号十六进制形式输出整数。对长整型可以用"%lx"格式输出。同样也可以指定字段宽度用"%mx"格式输出。 ④u格式:以无符号十进制形式输出整数。对长整型可以用"%lu"格式输出。同样也可以指定字段宽度用“%mu”格式输出。 //不可使用 //在实践中没有运行出来。⑤c格式:输出一个字符。 ⑥s格式:用来输出一个串。有几中用法 %s:例如:printf("%s", "CHINA")输出"CHINA"字符串(不包括双引号)。 %ms:输出的字符串占m列,如字符串本身长度大于m,则突破获m的限制,将字符串全部输出。若串长小于m,则左补空格。 %-ms:如果串长小于m,则在m列范围内,字符串向左靠,右补空格。 %m.ns:输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧,左补空格。 %-m.ns:其中m、n含义同上,n个字符输出在m列范围的左侧,右补空格。如果n>m,则自动取n值,即保证n个字符正常输出。 ⑦f格式:用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法: %f:不指定宽度,整数部分全部输出并输出6位小数。 %m.nf:输出共占m列,其中有n位小数,如数值宽度小于m左端补空格。 %-m.nf:输出共占n列,其中有n位小数,如数值宽度小于m右端补空格。 ⑧e格式:以指数形式输出实数。可用以下形式://在实践中没有运行出来。 %e:数字部分(又称尾数)输出6位小数,指数部分占5位或4位。 %m.ne和%-m.ne:m、n和”-”字符含义与前相同。此处n指数据的数字部分的小数位数,m表示整个输出数据所占的宽度。 ⑨g格式:自动选f格式或e格式中较短的一种输出,且不输出无意义的零。 //在实践中没有运行出来。 ------------------------------------关于printf函数的进一步说明: 如果想输出字符"%",则应该在“格式控制”字符串中用连续两个%表示,如: printf("%f%%", 1.0/3);输出0.333333%。 ------------------------------------对于单精度数,使用%f格式符输出时,仅前7位是有效数字,小数6位. 对于双精度数,使用%lf格式符输出时,前16位是有效数字,小数6位. ###################################### 对于m.n的格式还可以用如下方法表示(例) char ch[20]; printf("%*.*s ",m,n,ch);前边的*定义的是总的宽度,后边的定义的是输出的个数。分别对应外面的参数m和n 。我想这种方法的好处是可以在语句之外对参数m和n赋值,从而控制输出格式。 -------------------------------------------------------------------------将所输出字符串的长度值赋绐一个变量, 见下例: int slen; printf("hello world%n", &slen);执行后变量被赋值为11。 代码部分:public class printf { public static void main(String[] args) { //定义一些变量,用来“格式化”输出。 double a=848.234;//double型无法强制类型转换为String型, float d=(float) a; String b="nihao"; int c=111; char e='.'; System.out.print("输出字符:"); System.out.printf("%c",e);//"%c"输出一个字符。 System.out.println(); //“%”表示进行格式化输出,“%”之后的内容为格式化的定义。 System.out.println("单精度浮点型:"+d);/*单精度浮点型占32位存储空间,在一些 处理器上比双精度更快而且只占用双精度一般的空间,但是当值很大或很小的时候,它 将变得不准确*/ System.out.println("双精度型:"+a);/*双精度型占64位存储空间,在一些现代化的 被优化用来进行高速数学计算的处理器上比单精度的快,当需要保持多次反复迭代计算 的准确性时,或在操作值很大的数字时,双精度是最好的选择。*/ System.out.print("格式化输出浮点数:"); System.out.printf("%f",a);//格式化输出浮点数。 System.out.println(); System.out.print("输出长度为9,小数点后两位的值:"); System.out.printf("%9.2f",a);/*“9.2”中的9表示输出的长度,2表示小数点后的 位数,其中标点符号也占一位*/ System.out.println(); System.out.print("输出长度为9,小数点后两位的值:"); System.out.printf("%9.2f000000",a);//指定位置填0 System.out.println(); System.out.print("输出长度为9,小数点后两位,带正负号的值:"); System.out.printf("%+9.2f",a);//“+”表示输出的数带正负号。 System.out.println(); System.out.print("输出长度为9,小数点后两位,左对齐(默认为右对齐)的值:"); System.out.printf("%-9.2f",a);//“-”表示输出的数左对齐(默认为右对齐)。 System.out.println(); System.out.print("输出长度为9,小数点后两位,带符号,左对齐(默认为右对齐)的值:"); System.out.printf("%+-9.2f",a);//“+-”表示输出的数左对齐(默认为右对齐)。 //不能用指数形式输出 System.out.println(); System.out.print("输出十进制整数:"); System.out.printf("%d",c);//“%d”表示输出十进制整数。 System.out.println(); System.out.print("输出宽度为10的十进制整数:"); System.out.printf("%10d",c);/*“%md”表示输出宽度为m的十进制整数,如果数据 的位数小于m,则左端补以空格,若大于m,则按实际位数输出。其他进制数也可以这样*/ System.out.println(); System.out.print("输出长整型数据:"); System.out.printf("%1d",c);//“%1d”表示输出长整型数据,前面的是数字1。 System.out.println(); System.out.print("输出八进制整数:"); System.out.printf("%o",c);//“%o”表示输出八进制整数。//"%u"输出十进制形式无法使用。 System.out.println(); System.out.print("输出带有八进制标志的整数:"); System.out.printf("%#o",c);//“%#o”表示输出带有八进制标志的整数。标志是数字0 System.out.println(); System.out.print("输出十六进制整数:"); System.out.printf("%x",c);//“%x”表示输出八进制整数。 System.out.println(); System.out.print("输出带有十六进制标志的整数:"); System.out.printf("%#x",c);//“%#x”表示输出带有十六进制标志的整数标志,标志第一位是数字0。 //printf不能用于输出二进制,可以用如下方式输出二进制 System.out.println("十进制转换为二进制:"+Integer.toBinaryString(c)); //这种方法也可以输出八进制,十六进制,分别如下,但不可以将其他进制转换为十进制 System.out.println("十进制转换为八进制:"+Integer.toOctalString(c)); System.out.println("十进制转换为十六进制:"+Integer.toHexString(c)); //下面的方法只适用于将其他进制转换为十进制 System.out.println("输出一个二进制数的十进制表示:"+Integer.valueOf("111001",2)); System.out.println("输出一个八进制数的十进制表示:"+Integer.valueOf("111001",8)); System.out.println("输出一个十六进制数的十进制表示:"+Integer.valueOf("111001",16)); System.out.print("输出字符串:"); System.out.printf("%s",b);//"%s"表示输出字符串,当输出的为字符串时,“%s”可以省去。 System.out.println(); System.out.print("输出占m列的字符串:"); System.out.printf("%13s",b);/*"%ms"表示输出的字符串占m列,如字符串本身长度大于m,则输出 原字符串;如果串长小与m,则左补空格*/ System.out.println(); System.out.print("输出占m列的右对齐的字符串:"); System.out.printf("%-13s",b);/*-表示字符串右对齐*/ System.out.println(); System.out.print("输出占m列,但只取字符串中左端n个字符的的字符串:"); System.out.printf("%13.3s",b);/*"%m.n"表示输出占m列,但只取字符串中左端n个字符,右对齐*/ System.out.println(); System.out.print("输出占m列,但只取字符串中左端n个字符的右对齐的字符串:"); System.out.printf("%-13.3s",b);/*-表示字符串右对齐*/ System.out.println(); System.out.printf("输出一个浮点数: %f,一个字符串: %s,一个整数: %d",a,b,c); //可以输出多个变量,但一定要注意顺序不要漏掉逗号 System.out.println(); System.out.printf("字符串:%2$s,%3$d的十六进制数:%3$#x,双精度%1$1f的单精度浮点型表示:%1$f",a,b,c); //双精度的格式输出为数字1加f,"X$表示第几个变量,指的是这一行后面给出的变量的第几个。 } }
2020年03月16日
1,090 阅读
0 评论
0 点赞
2020-03-16
试题 算法提高 三角形面积
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 由三角形的三边长,求其面积。 提示:由三角形的三边a,b,c求面积可以用如下的公式: s=(a+b+c)/2 面积=输入格式 由空格分开的三个整数。输出格式 一个实数,保留两位小数。样例输入3 4 5样例输出6.00数据规模和约定 输入的三条边一定能构成三角形,不用进行判定。a,b,c小于1000import java.text.DecimalFormat; import java.lang.*; import java.util.*; public class sanjiaoxings { /** * @param args * 试题 算法提高 三角形面积 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); DecimalFormat df = new DecimalFormat("0.00"); double a =sc.nextDouble(); double b =sc.nextDouble(); double c =sc.nextDouble(); double s =(a+b+c)/2; System.out.printf("%.2f",Math.sqrt(s * ( s-a) * ( s - b ) * ( s-c))); } }printf用法链接:printf的用法
2020年03月16日
549 阅读
0 评论
0 点赞
2020-03-16
试题 算法提高 判断回文
资源限制时间限制:1.0s 内存限制:512.0MB 编程判断一个字符串是否是回文,当字符串是回文时,输出字符串:yes!,否则输出字符串:no!。所谓回文即正向与反向的拼写都一样,如adgda。 长度在100以内,且全为小写字母样例输入adgda样例输出yes!import java.util.*; public class panduanhuiwen { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); //输入字符串 String str = sc.next(); //声明变量x为第一位字符,y为最后一位字符 int x=0,y=str.length()-1; //默认为回文 boolean result =true; //循环判断,如有一个不相等则退出 for (int i = 0; i < str.length(); i++) { char a =str.charAt(x); char b =str.charAt(y); if (a==b) { x++; y--; }else { result =false; break; } } //根据result判断输出 if (result==false) { System.out.println("no!"); }else { System.out.println("yes!"); } } }
2020年03月16日
529 阅读
0 评论
0 点赞
2020-03-15
试题 算法提高 勾股数
资源限制时间限制:1.0s 内存限制:256.0MB问题描述 勾股数是一组三个自然数,a < b < c,以这三个数为三角形的三条边能够形成一个直角三角形 输出所有a + b + c <= 1000的勾股数 a小的先输出;a相同的,b小的先输出。输出格式 每行为一组勾股数,用空格隔开样例输出例如,结果的前三行应当是3 4 55 12 136 8 10import java.util.Arrays; public class gougushu { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] list=new int[3]; for (int i = 1; i < 1000; i++) { for (int j = i; j < 1000; j++) { for (int k = j; k < 1000; k++) { if (i+j+k<=1000 && i*i+j*j==k*k) { System.out.println(i+" "+j+" "+" "+k); } } } } } }
2020年03月15日
592 阅读
0 评论
0 点赞
2020-03-15
试题 算法提高 冒泡法排序
资源限制时间限制:1.0s 内存限制:512.0MB 输入10个数,用“冒泡法”对10个数排序(由小到大)这10个数字在100以内。样例输入1 3 6 8 2 7 9 0 4 5样例输出0 1 2 3 4 5 6 7 8 9import java.util.*; public class maopaopaixu { /** * @param args * 试题 算法提高 冒泡法排序 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int[] list= new int [10]; for (int i = 0; i < 10; i++) { list[i]=sc.nextInt(); } int temp=0; for (int i = 1; i < 10; i++) { for (int j = 0; j < 10-i; j++) { if (list[j]>list[j+1]) { //大小判断交换,如需调换顺序只需改>为< temp = list[j]; list[j] = list[j+1]; list[j+1]=temp; } } } for (int i = 0; i < list.length; i++) { System.out.print(list[i]+" "); } } }
2020年03月15日
609 阅读
0 评论
0 点赞
2020-03-15
java求质数的4种方法
第一种:双重for循环 使除数与被除数个个计算,效率极低public void test1(int n){ long start = System.currentTimeMillis(); //取开始时间 int num=0; boolean sign; for(int i=2;i<n;i++){ if(i % 2 == 0 && i != 2 ) continue; //偶数和1排除 sign=true; for (int j=2;j<i;j++){ if(i%j==0){ sign=false; break; } } if (sign){ num++; /* System.out.println(""+i);*/ } } System.out.println(n+"以内的素数有"+num+"个"); long end = System.currentTimeMillis(); System.out.println("The time cost is " + (end - start)); System.out.println(""); }第二种:主要考虑2 ~ i/2之间的数 ,效率比第一种提高一半public void test2(int n){ long start = System.currentTimeMillis(); //取开始时间 int num=0; int j; boolean sgin; for (int i = 2; i <= n; i++) { if(i % 2 == 0 && i != 2 ) continue; //偶数和1排除 sgin = true; for (j = 2; j <= i/2 ; j++) { if (i % j == 0) { sgin= false; break; } } //打印 if (sgin) { num++; /* System.out.println(""+i);*/ } } System.out.println(n+"以内的素数有"+num+"个"); long end = System.currentTimeMillis(); System.out.println("The time cost is " + (end - start)); System.out.println(""); }第三种:使用开方去过滤 Math.sqrt(i)public void test3(int n){ long start = System.currentTimeMillis(); //取开始时间 int num=0; int j; boolean sgin; for (int i = 2; i <= n; i++) { if(i % 2 == 0 && i != 2 ) continue; //偶数和1排除 sgin= true; for (j = 2; j <= Math.sqrt(i) ; j++) { if (i % j == 0) { sgin = false; break; } } //打印 if (sgin) { num++; /* System.out.println(""+i);*/ } } System.out.println(n+"以内的素数有"+num+"个"); long end = System.currentTimeMillis(); System.out.println("The time cost is " + (end - start)); System.out.println(""); }第四种:逆向思维筛选质素,最为高效 public void test4(int n){ long start = System.currentTimeMillis(); //取开始时间 //素数总和 int sum = 0; //1000万以内的所有素数 //用数组将1000万以内的数分为两大派系,素数用0代替数值,合数用1代替数值; //一开始默认全部为素数,所以值全部为0,等到开始筛选的时候再把为合数的赋值为1 int num[] = new int[n]; num[0] = 1; //由于1规定不是素数,所以要提前用1标值 //根据埃氏筛法的结论,要得到自然数 N 以内的全部素数,必须把不大于" 二次根号 N "的所有素数的倍数剔除,剩下的就是素数 double prescription = Math.sqrt(n); for (int i = 2; i <= prescription; i++) { //开始把所有素数的倍数剔除,剩下的就是素数 for (int j = i*i; j <= n; j+=i) { //从i*i开始去除,因为比i*i小的倍数,已经在前面去除过了 //例如:i=5 //5的2倍(10),3倍(15),在i=2的时候,已经去除过了 num[j-1] = 1; //把素数的倍数剔除,也就是赋值为1,不是素数就是合数 } } //遍历数组,把值为0的数全部统计出来,得到素数之和 for (int i = 0; i < num.length; i++) { if(num[i]==0) sum++; } System.out.println(n+"以内的素数有"+sum+"个"); long end = System.currentTimeMillis(); System.out.println("The time cost is " + (end - start)); System.out.println(""); }
2020年03月15日
897 阅读
0 评论
1 点赞
2020-03-14
试题 算法提高 分数统计
资源限制时间限制:1.0s 内存限制:512.0MB问题描述 2016.4.5已更新此题,此前的程序需要重新提交。问题描述 给定一个百分制成绩T,将其划分为如下五个等级之一: 90~100为A,80~89为B,70~79为C,60~69为D,0~59为E 现在给定一个文件inp,文件中包含若干百分制成绩(成绩个数不超过100),请你统计五个等级段的人数,并找出人数最多的那个等级段,按照从大到小的顺序输出该段中所有人成绩(保证人数最多的等级只有一个)。要求输出到指定文件oup中。输入格式 若干0~100的正整数,用空格隔开输出格式 第一行为5个正整数,分别表示A,B,C,D,E五个等级段的人数 第二行一个正整数,表示人数最多的等级段中人数 接下来一行若干个用空格隔开的正整数,表示人数最多的那个等级中所有人的分数,按从大到小的顺序输出。样例输入100 80 85 77 55 61 82 90 71 60样例输出2 3 2 2 1385 82 80import java.util.*; public class fenshutongji { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int a=0,b=0,c=0,d=0,e=0; int n = sc.nextInt(); int[]list = new int[n]; for (int i = 0; i < list.length; i++) { list[i]=sc.nextInt(); } ArrayList<Integer> result0 = new ArrayList<Integer>(); ArrayList<Integer> result1 = new ArrayList<Integer>(); ArrayList<Integer> result2 = new ArrayList<Integer>(); ArrayList<Integer> result3 = new ArrayList<Integer>(); ArrayList<Integer> result4 = new ArrayList<Integer>(); for (int i = 0; i < list.length; i++) { if (list[i]<=100&&list[i]>=90) { result0.add(list[i]); a++; }else if (list[i]<=89&&list[i]>=80) { result1.add(list[i]); b++; }else if (list[i]<=79&&list[i]>=70) { result2.add(list[i]); c++; }else if (list[i]<=69&&list[i]>=60) { result3.add(list[i]); d++; }else if (list[i]<=59&&list[i]>=0) { result4.add(list[i]); e++; } } int []index = {a,b,c,d,e}; for (int i = 0; i < index.length; i++) { System.out.print(index[i]+" "); } int temp=0,max=0; for (int i = 0; i < index.length; i++) { if (index[i]>temp) { temp = index[i]; max = i; } } System.out.println(" "+temp); //应题目要求从大到小输出,然后就。。。先顺序排序,再逆转列表 if (max==0) { Collections.sort(result0); Collections.reverse(result0); for (int i = 0; i < result0.size(); i++) { System.out.print(result0.get(i)+" "); } }else if (max==1) { Collections.sort(result1); Collections.reverse(result1); for (int i = 0; i < result1.size(); i++) { System.out.print(result1.get(i)+" "); } }else if (max==2) { Collections.sort(result2); Collections.reverse(result2); for (int i = 0; i < result2.size(); i++) { System.out.print(result2.get(i)+" "); } }else if (max==3) { Collections.sort(result3); Collections.reverse(result3); for (int i = 0; i < result3.size(); i++) { System.out.print(result3.get(i)+" "); } }else if (max==4) { Collections.sort(result4); Collections.reverse(result4); for (int i = 0; i < result4.size(); i++) { System.out.print(result4.get(i)+" "); } } } }
2020年03月14日
511 阅读
0 评论
0 点赞
1
...
14
15
16
17