import java.util.ArrayList;
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站制作、网站设计、献县网络推广、小程序开发、献县网络营销、献县企业策划、献县品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供献县建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com
public class Testa {
public static void main( String[] args ) {
ArrayListInteger arrayList = new ArrayListInteger();
for ( int i = 1; i = 1000; i++ ) {
int k=0;
for(int j=1;ji;j++){
if(i%j==0){
k+=j;
}
}
if(k==i){
arrayList.add( i );
}
}
System.out.println(arrayList);
}
}
代码如下:
public static void main(String[] args)
{
String str = "";
for(int i = 1;i 10000;i++)
{
str = String.format("%04d", i);
System.out.println(str);
}
}
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程 。
这是一个java基础题
虽然基础,但是我们练习的时候,可以加以拓展和优化,熟悉for循环 while循环, 了解运算符优先级, 加强对业务逻辑的分析处理,强化写代码的能力。
首先代码的写法是多样的
1.根据奇数定义 : 不能被2所整除的数是奇数
根据这个定义,我们可以写一个最基础的版本
public class Odd1 {
public static void main(String[] args) {
for (int i = 1; i 1000; i++) {//1~1000之间 循环1000次
if(i%2!=0){ //不能被2整除的
System.out.println(i);//就是奇数,打印出来
}
}
}
}
分析下,这个版本,我们发现这个版本性能可能比较低
因为要循环1000次,并且每次还要进行一次求余运算。所以性能低。
有没有改进的空间?
2. 我们继续对奇数进行了解(对业务进行熟悉)。还有改进的空间
然后发现: 偶数可用2k表示,奇数可用2k+1表示,这里k是整数。
代码修改如下
public class Odd2 {
public static void main(String[] args) {
for (int k = 0; k 500; k++) {//循环减少为500次
System.out.println(k*2+1);//按照奇数公式进行输出
}
}
}
3. 继续优化. java中乘法是性能消耗比较大的运算, 如果可以使用移位操作 , 那么使用移位操作代替乘法
因为使用移位的操作将会更快和更有效
public class Odd3 {
public static void main(String[] args) {
for (int k = 0; k 500; k++) {
System.out.println((k1)+1);//移位操的优先级低于四则运算, 所以用括号括起来优先计算 , 左移1位.相当于*2
}
}
}
4. 查看奇数的特性 , 来探索其他写法
奇数1、3、5、7、9、11、13、15、17、19、21、23、25、27、29、31、33.........
每个奇数的间隔是2, 第一个奇数是1
代码如下
public class Odd4 {
public static void main(String[] args) {
for (int i = 1; i 1000; i+=2) {//从1开始,每次自加2
System.out.println(i);
}
}
}
5. 除开for循环, while循环也可以写.
public class Odd5 {
public static void main(String[] args) {
int i = 1;
while (true) {
if (i = 1000) {
break;//跳出循环
}
System.out.println(i);
i = i + 2;
}
}
}
6 再次修改,如果业务逻辑 从1~1000修改成其他数字了, 那么在循环体中修改不是特别合适
所以需要定义成2个变量. 来记录开始的数字和结束的数字. 并且如果输出太多的数字, 不方便查看, 那么需要美化下输出的格式
public class Odd6 {
public static void main(String[] args) {
int start = 1; //开始的数
int end = 1000; //结束的数
int index =0;//用于换行处理的计算
for (int n = start; n end; n += 2) {
index++;
System.out.print(n+"\t");// \t表示制表符 ,这样数字看起来排列比较整齐
if(index%10==0){//每10个数字,换一行
System.out.println();
}
}
}
}