java day7
来源:互联网 发布:桌面图标软件 编辑:程序博客网 时间:2024/06/09 13:44
1 数组的元素个数
array.length
2 数组是不能扩展的,但是似乎后来会讲一个可以的。
1 普通变量是所有者,数组变量是管理者(在另外一个地方存储数组元素)
int[] a = new int[10];a[0] = 5;int[] b = a;b[0] = 12;
所以,上面int[]b = a,实际上的意思是让b管理a管理的那个数组,所以修改b的元素,a中的元素也会被同时修改。此时这里既是a[0]也是b[0]
2 for-each 循环
for(int k : data)
意为:对于data中的每一个元素,每次循环都依次拿出去一项作为k在循环中使用
——适合遍历一个数组,但是不能修改数组
3 优化素数寻找
-1 过滤所有偶数 可以降到n/2
-2 只算到sqrt() (有相关定理可以证明,任何一个数都不能拆成两个大于其平方根数的乘积) 则计算量降低到sqrt
-3 使用已有素数集合计算
4 二维数组
int[][] array2 = new int[3][5];
--
final int SIZE =3;
5 第五章作业
这个作业说实话我不太满意,因为这个作业其实看上去并不难,但是我足足弄了三个晚上。虽然这三天也有一些别的事打扰,但是总的来说还是至少有个7、8小时。
而且,特别是看了别人的代码,更让我火大。为了实现这个功能,最后的修改版本足足有两百行。但是别人写的,能过四项测试,一共才不到五十行。我现在真的有些怀疑我到底适不适合干这行。
package nohello;import java.util.Scanner;public class s170411 {public static void main(String[] args) {int[][] arr = new int[100][2];Scanner in = new Scanner(System.in);int a=in.nextInt();int right=0;//有效数对个数-1for(int i=0,count=0,zerotime=0;i<100;i++){if(i%2==0)//+10{if(a==0){zerotime++;}arr[count][0]=a;right=count;} else {arr[count][1]=a;count++;if(zerotime==2)break;}a=in.nextInt();}int[][] arr1=new int[right+1][2];for(int i=0,zerotime=0;i<100;i++){if(arr[i][0]==0 && arr[i][1]==0)//没考虑两次0 0 {if(zerotime==2){break;}else {zerotime++;}} else {arr1[i][0]=arr[i][0];arr1[i][1]=arr[i][1];}}for(int i=0;i<arr1.length;i++){for(int j=i+1;j<arr1.length;j++){if(arr1[i][0]==arr1[j][0]){arr1[i][1]+=arr1[j][1];arr1[j][0]=0;arr1[j][1]=0;} else {continue;}}}for(int i=0;i<arr1.length;i++){int temp1=0,temp2=0;for(int j=i+1;j<arr1.length;j++){if(arr1[i][0]<arr1[j][0]){temp1=arr1[i][0];temp2=arr1[i][1];arr1[i][0]=arr1[j][0];arr1[i][1]=arr1[j][1];arr1[j][0]=temp1;arr1[j][1]=temp2;i=0;break;} else if(arr1[i][0]==arr1[j][0]) {if(arr1[i][0]!=0 && arr1[j][0]==0){continue;} else if(arr1[i][0]==0 && arr1[j][0]!=0){temp2=arr1[i][1];arr1[i][1]=arr1[j][1];arr1[j][1]=temp2;i=0;break;}}}}in.close();boolean notzero=false;//用于判断是否是第一个幂次不为零系数也不为零的for(int i=0;i<arr1.length;i++){//判断系数是否为0if(arr1[i][1]==0){//如果系数为0 判断幂次是否为0if(arr1[i][0]==0){//系数幂次都是0 判断是否前面没出现过非零if(!notzero){//没有非0 说明这是唯一有效的一项 输出0之后退出System.out.println("0");break;} else {//前面有非0 说明这是多项式常数项为0 不输出 直接退出//break;}} else {//幂次不为0 说明不是最后一项 跳过本轮循环continue;}} else {//系数不为0 判断前面是否出现过非零if(!notzero){//没出现非零 说明这是应该输出的第一项;判断幂次是否为0 1 还是其他if(arr1[i][0]==0)//幂次为0 只有一项有效 输出常数项后退出{System.out.print(arr1[i][1]);break;} else if(arr1[i][0]==1){//幂次为1 判断是否为正负1if(arr1[i][1]==1){//系数为1 只输出xSystem.out.print("x");notzero=true;} else if(arr1[i][1]==-1){//系数为-1 只输出-xSystem.out.print("-x");notzero=true;} else {//系数为其他 输出系数和x但不输出幂次System.out.print(arr1[i][1]+"x");notzero=true;}} else {//幂次为其他 判断是否为正负1if(arr1[i][1]==1){//系数为1 只输出x和幂次System.out.print("x"+arr1[i][0]);notzero=true;} else if(arr1[i][1]==-1){//系数为-1 只输出-x和幂次System.out.print("-x"+arr1[i][0]);notzero=true;} else {//系数为其他 正常输出System.out.print(arr1[i][1]+"x"+arr1[i][0]);notzero=true;}}} else {//出现过非零项 说明这是中间项 还是判断幂次是否为0 1 还是其他if(arr1[i][0]==0)//幂次为0 说明是最后一项 判断正负 输出常数项后退出{if(arr1[i][1]>0){//为正数 带一个加号System.out.print("+"+arr1[i][1]);break;} else {//为负 自带符号 直接输出System.out.print(arr1[i][1]);break;}} else if(arr1[i][0]==1){//幂次为1 判断是否为正负1if(arr1[i][1]==1){//系数为1 只输出+xSystem.out.print("+x");} else if(arr1[i][1]==-1){//系数为-1 只输出-xSystem.out.print("-x");} else {//系数为其他 判断正负 输出系数和x但不输出幂次if(arr1[i][1]>0){//为正数 带一个加号 和系数 和xSystem.out.print("+"+arr1[i][1]+"x");} else {//为负 自带符号 直接输出系数和xSystem.out.print(arr1[i][1]+"x");}}} else {//幂次为其他 判断是否为正负1if(arr1[i][1]==1){//系数为1 输出加号和x和幂次System.out.print("+x"+arr1[i][0]);} else if(arr1[i][1]==-1){//系数为-1 只输出-x和幂次System.out.print("-x"+arr1[i][0]);} else {//系数为其他 判断系数正负if(arr1[i][1]>0){//为正数 带一个加号 和系数 和xSystem.out.print("+"+arr1[i][1]+"x"+arr1[i][0]);} else {//为负 自带符号 直接输出系数和xSystem.out.print(arr1[i][1]+"x"+arr1[i][0]);} }}}}}}}
0 0
- Java Day7
- java day7
- Java day7
- java学习笔记day7
- java 学习day7
- java学习day7
- 码神-day7-java
- Java学习--day7
- Java学习day7
- day7-java&oracle总结
- Day7
- DAY7
- day7
- DAY7
- Day7
- day7
- day7
- day7
- 83. Remove Duplicates from Sorted List
- tnsname和listener
- 存储用户信息案例
- linux系统安装JDk
- c++学习进阶之路
- java day7
- sublime text 的小细节设置,让你的代码更优美
- EasyUI之日期输入框dateBox
- win8系统怎么装会win7系统
- 面向开发人员的区块链链代码深入研究:使用 Go 编写智能合约
- 关于重载运算符以及定义类型转换函数
- 蓝桥杯之k倍区间
- C++面向对象之多态
- oracle用户管理