JAVA的一个疑问,望能解答: 如何把一个五位数整数的各个数进行奇偶判断,然后还要将5个数相加,得和
我还希望您能详细点告诉我如何表示一个数的某位数如何表示,比如:12345中的3如何表示,4又怎么表示!!!谢谢了!!我的意思是,你能不能把程序全部打出来,这样我好理解点,...
我还希望您能详细点告诉我如何表示一个数的某位数如何表示,比如:12345中的3如何表示,4又怎么表示!!!谢谢了!!
我的意思是,你能不能把程序全部打出来,这样我好理解点,谢谢哦 展开
我的意思是,你能不能把程序全部打出来,这样我好理解点,谢谢哦 展开
6个回答
展开全部
你应该是初学者吧。这种问题自己完全可以解决。就算是没思路也要只求思路,程序还是要自己写。多敲程序才是学编程最有效的手段。
你的问题的关键就是如何从一个多位数中取出其中的一位,其实思路很简单,就用两个计算:
% 取余数
/ 取商
比如想取百位,就用12345 % 1000,这样计算结果是除1000的余数,也就是345,再来就是345 / 100,这样就能求得3这个结果了。
另附代码,有些麻烦,但比较标准。其实很多时候看代码往往比写代码要难,因为你得理解别人的思路。
public class Slim {
public static void main(String[] args) {
//这是原始的五位数
int x = 23563;
//存储各位数的数组
int[] num = new int[5];
int y = 10;
for(int i = 0; i < 5; i++){
//关键步骤,先取余再取商
num[i] = x % y / (y / 10);
y *= 10;
//调用函数判断是否是奇数
String str = isOdd(num[i])? "奇数": "偶数";
System.out.print("第" + (i + 1) + "位是:" + num[i] + "是" + str + "\t");
}
System.out.println();
System.out.println("和是:" + sum(num));
}
//求参数数组的和
public static int sum(int[] num){
int count = 0;
for(int i = 0; i < num.length; i++){
count += num[i];
}
return count;
}
//求输入的数的奇偶性
public static boolean isOdd(int x){
return x % 2 != 0;
}
}
你的问题的关键就是如何从一个多位数中取出其中的一位,其实思路很简单,就用两个计算:
% 取余数
/ 取商
比如想取百位,就用12345 % 1000,这样计算结果是除1000的余数,也就是345,再来就是345 / 100,这样就能求得3这个结果了。
另附代码,有些麻烦,但比较标准。其实很多时候看代码往往比写代码要难,因为你得理解别人的思路。
public class Slim {
public static void main(String[] args) {
//这是原始的五位数
int x = 23563;
//存储各位数的数组
int[] num = new int[5];
int y = 10;
for(int i = 0; i < 5; i++){
//关键步骤,先取余再取商
num[i] = x % y / (y / 10);
y *= 10;
//调用函数判断是否是奇数
String str = isOdd(num[i])? "奇数": "偶数";
System.out.print("第" + (i + 1) + "位是:" + num[i] + "是" + str + "\t");
}
System.out.println();
System.out.println("和是:" + sum(num));
}
//求参数数组的和
public static int sum(int[] num){
int count = 0;
for(int i = 0; i < num.length; i++){
count += num[i];
}
return count;
}
//求输入的数的奇偶性
public static boolean isOdd(int x){
return x % 2 != 0;
}
}
展开全部
package hello;
public class Gtang {
public static void main(String[] args){
getInt(123456789);
}
/**
* 判断奇偶
* @param i
*/
public static void check(int i){
if(i%2==0){
System.out.println(i+"是偶数");
}
else
{
System.out.println(i+"是奇数");
}
}
/**
* 取一个整数的每一位
* @param i
*/
public static void getInt(Integer i){
int l=i.toString().length();
int b=10;
int c;
int s=0;
for(int j=0;j<l;j++){
c=i%b;
i/=b;
System.out.print("第"+(j+1)+"位是"+c+" ");
check(c);//判断奇偶
s+=c; //取各位之和
}
System.out.println(s);
}
}
这个应该没问题了 我试过了~还需要改进吗?
public class Gtang {
public static void main(String[] args){
getInt(123456789);
}
/**
* 判断奇偶
* @param i
*/
public static void check(int i){
if(i%2==0){
System.out.println(i+"是偶数");
}
else
{
System.out.println(i+"是奇数");
}
}
/**
* 取一个整数的每一位
* @param i
*/
public static void getInt(Integer i){
int l=i.toString().length();
int b=10;
int c;
int s=0;
for(int j=0;j<l;j++){
c=i%b;
i/=b;
System.out.print("第"+(j+1)+"位是"+c+" ");
check(c);//判断奇偶
s+=c; //取各位之和
}
System.out.println(s);
}
}
这个应该没问题了 我试过了~还需要改进吗?
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于10进制无法靠2进制移位来得到精确的数值,所以我觉得可以将这个数字转换成一个string,比如12345转换成"12345"然后根据string长度,取到每1个字符,再转成byte值,这样就能得到具体每1个数字了,具体代码:
int num = 232322213;
String str = Integer.toString(num);
int lenth = str.length();
int[] newNum = new int[lenth];
for(int i =0;i<lenth;++i)
{
newNum[i] = Integer.parseInt(str, i);
}
得到的newNum里的每个元素就是你数字的每位.
int num = 232322213;
String str = Integer.toString(num);
int lenth = str.length();
int[] newNum = new int[lenth];
for(int i =0;i<lenth;++i)
{
newNum[i] = Integer.parseInt(str, i);
}
得到的newNum里的每个元素就是你数字的每位.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
取模运算。
public void test() {
int n = 12345;
ArrayList<Integer> x = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
x.add(n % 10);
n = n / 10;
}
System.out.println(x);
}
结果:
[5, 4, 3, 2, 1]
是按照从低位向高位排列的一个数组。
public void test() {
int n = 12345;
ArrayList<Integer> x = new ArrayList<Integer>();
for (int i = 0; i < 5; i++) {
x.add(n % 10);
n = n / 10;
}
System.out.println(x);
}
结果:
[5, 4, 3, 2, 1]
是按照从低位向高位排列的一个数组。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
12345/10%10 = 4
12345/100%10=3
public class test{
public static void main(String[] args) {
int i,a,b,c,d,e;
for(i=100;i<100000;i++){
a=i%10;b=i/100%10;c=i/1000%10;d=i/10000%10;e=i/100000;
if(a/2=0) 除尽的为偶数
}
}
}
12345/100%10=3
public class test{
public static void main(String[] args) {
int i,a,b,c,d,e;
for(i=100;i<100000;i++){
a=i%10;b=i/100%10;c=i/1000%10;d=i/10000%10;e=i/100000;
if(a/2=0) 除尽的为偶数
}
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询