java求0-7所能组成的奇数个数 5
这是规律:个位数1、3、5、7:是4个十位数是7*4:28个(11、13...77)百位数是:7*4*8:224个7*4*8*8每次需上面的数乘以8只要个位数是1,3,5...
这是规律:
个位数1、3、5、7:是4个
十位数是7*4:28个(11、13...77)
百位数是:7*4*8:224个
7*4*8*8
每次需上面的数乘以8
只要个位数是1,3,5,7就行
请问用算法怎么解决! 展开
个位数1、3、5、7:是4个
十位数是7*4:28个(11、13...77)
百位数是:7*4*8:224个
7*4*8*8
每次需上面的数乘以8
只要个位数是1,3,5,7就行
请问用算法怎么解决! 展开
12个回答
展开全部
public class Test43{
public static void main(String[] args){
int count = 0;
//声明由数字组成的数
int n = 8;
//一位数
count = n/2;
//两位数
count += (n-1)*n/2;
//三位数
count += (n-1)*n*n/2;
//四位数
count += (n-1)*n*n*n/2;
//五位数
count += (n-1)*n*n*n*n/2;
//六位数
count += (n-1)*n*n*n*n*n/2;
//七位数
count += (n-1)*n*n*n*n*n*n/2;
System.out.println("0-7所能组成的奇数个数:"+count);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是要 计算0-n的所能组成的奇数的个数?
设总数int sum= 0
个位上奇数个数 int count=0
1、if n%2==0,count=n/2;else count=(n+1)/2; sum+=count//个位
2、sum+=n*count*(n+1)^0;//十位
3、sum+=n*count*(n+1)^1//百位
4、sum+=n*count*(n+1)^2//千位
依次类推
直到n+1位
sum+=n*count*(n+1)^(n-1);
设总数int sum= 0
个位上奇数个数 int count=0
1、if n%2==0,count=n/2;else count=(n+1)/2; sum+=count//个位
2、sum+=n*count*(n+1)^0;//十位
3、sum+=n*count*(n+1)^1//百位
4、sum+=n*count*(n+1)^2//千位
依次类推
直到n+1位
sum+=n*count*(n+1)^(n-1);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以1结尾的数有
5*5*4*3*2*1
同理,3,5,7结尾的数和1一样
结果是5*5*4*3*2*1 *4
5*5*4*3*2*1
同理,3,5,7结尾的数和1一样
结果是5*5*4*3*2*1 *4
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
话说,你要 求的是什么?
输入是几位数然后求出所有0-7组成奇数的个数吗?
1位和2位是个例,你单独判断,
>2就用for循环*8啊。
if(n=1)m=4;
if(n=2)m=7*4;
if(n>2){
m=7*4;
for(i=0;i<n-2;i++)
m=m*8;
}
输入是几位数然后求出所有0-7组成奇数的个数吗?
1位和2位是个例,你单独判断,
>2就用for循环*8啊。
if(n=1)m=4;
if(n=2)m=7*4;
if(n>2){
m=7*4;
for(i=0;i<n-2;i++)
m=m*8;
}
更多追问追答
追问
不用输入几位数
就是0-7有8个数字 就最高位就是8为有多少个奇数
追答
那数字能不能重复啊。。。
能重复:
m=7*4;for(i=0;i<n-2;i++)m=m*8;
不能重复:
m=4*6*6*5*4*3*2
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public class Test {
public static void main(String[] args) {
int count = 0;
int six = 00;
int five = 00;
int four = 00;
int three = 00;
int two = 00;
int one = 00;
for (int i = 0102345; i <= 0765431; i = i + 02) {
six = i % 010;
five = i / 010 % 010;
four = i / 0100 % 010;
three = i / 01000 % 010;
two = i / 010000 % 010;
one = i / 0100000 % 010;
if (six != five && six != four && six != three && six != two
&& six != one && five != four && five != three
&& five != two && five != one && four != three
&& four != two && four != one && three != two
&& three != one && two != one) {
count++;
}
}
System.out.println(count);
}
}//计算出8640个
public static void main(String[] args) {
int count = 0;
int six = 00;
int five = 00;
int four = 00;
int three = 00;
int two = 00;
int one = 00;
for (int i = 0102345; i <= 0765431; i = i + 02) {
six = i % 010;
five = i / 010 % 010;
four = i / 0100 % 010;
three = i / 01000 % 010;
two = i / 010000 % 010;
one = i / 0100000 % 010;
if (six != five && six != four && six != three && six != two
&& six != one && five != four && five != three
&& five != two && five != one && four != three
&& four != two && four != one && three != two
&& three != one && two != one) {
count++;
}
}
System.out.println(count);
}
}//计算出8640个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询