课堂测试——数据位数、位数输出、各位数上数据求和

2016.10.18Java课堂测试

在课堂上写的时候,写到各位书身上数据输出时、因为处理不好取最高位的步骤所以不能继续进行编程。

经过后期查找之后:

引用import static java.lang.Math.*;

  求x的y次方运算,Math.pow(x,y);

  求整数部分,Math.floor();//这里运行之后发现是double类型所以又用了强制转换。

将Int转换为Double类型,int number1=(int) number2;

另外的问题就是:

因为数据上存在多次变化使用,所以我将数据赋予一个新的变量,自觉很烦,不喜欢。

//陶雨洁 课堂测试 位数 20153152
package tyj;
import java.util.Scanner;
import static java.lang.Math.*;
public class Tyj20153152 {
public static void main(String[] args){
    System.out.println("输入任意整数");

    Scanner sc=new Scanner(System.in);
      int a=sc.nextInt();
      System.out.println("位数"+pdWS(a));//位数输出
      qS(a);//取数
      qH(a);//位数上数据求和
}

public static int pdWS(int a){
    int j=1;//位数计数
    for(;a/10!=0;a=a/10){
          j++;
      }
    return j;
}

public static void qS(int a){
    int b=a;//a用作计量位数
    int j=1;//位数计数
    for(;a/10!=0;a=a/10){
          j++;
      }
    int c=j;//j用作记录循环次数
    for(int n=0;n<j;n++){
        int m=(int)Math.floor( b/Math.pow(10,c-1));
        System.out.println(m);//Math.pow是10的j次方运算
        b=(int) (b-m*Math.pow(10,c-1));
        c--;
    }
}


public static void qH(int a){
    int b=a;//a用作计量位数
    int j=1;//位数计数
    int sum=0;//求和嘛
    for(;a/10!=0;a=a/10){
          j++;
      }
    int c=j;//j用作记录循环次数
    for(int n=0;n<j;n++){
        int m=(int)Math.floor( b/Math.pow(10,c-1));
        sum=sum+m;
        b=(int) (b-m*Math.pow(10,c-1));
        c--;
    }
    System.out.println("输出数据每位数上的和为"+sum);
}



}

运算结果:

posted @ 2016-10-19 16:10  陶雨洁  阅读(272)  评论(0编辑  收藏  举报