课堂测试——数据位数、位数输出、各位数上数据求和
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); } }
运算结果: