4个回答
展开全部
/*
首先这是排列组合问题,哪个权位高,就要优先考虑该情况
我们首先考虑最低位:
1、如果最低位是0,
那么剩下的2个位就只有9*8==72种情况;
2、如果最低位不是0,那么最低位就4种情况(2、4、6、8)
此时最高位就有8种情况(不可以是0),中间位就有8种(可以是0)
所以总共:
72 + 4*8*8 == 328
*/
#include <stdio.h>
int main(void)
{
int count = 0;
for(int i=1; i <= 9; i++)//高位
for(int j=0; j <= 9; j+=2)//低位
if( j != i)
for(int k=0; k <= 9; k++)//中间
if( k != i && k !=j )
count++;
printf("%d\n",count);
return 0;
}
展开全部
#include<stdio.h>
void main()
{
int hundred,ten,one;
int sum=0,i;
for ( i=100;i<999;i++)
{
hundred=i/100;
ten=(i-hundred*100)/10;
one=i%10;
if ((hundred==ten)||(hundred==one)||(ten==one)||(one%2==1))//判断百位、十位、个位是否相等,还有判断是非是偶数。
continue;//如果判断为真,终止本次循环,否则,
else
{
printf("%d%d%d\n ",hundred,ten,one);
sum++;
}
}
printf("number= %d\n",sum);
}
void main()
{
int hundred,ten,one;
int sum=0,i;
for ( i=100;i<999;i++)
{
hundred=i/100;
ten=(i-hundred*100)/10;
one=i%10;
if ((hundred==ten)||(hundred==one)||(ten==one)||(one%2==1))//判断百位、十位、个位是否相等,还有判断是非是偶数。
continue;//如果判断为真,终止本次循环,否则,
else
{
printf("%d%d%d\n ",hundred,ten,one);
sum++;
}
}
printf("number= %d\n",sum);
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void main( )
{
int cnt=0,i,b,s,g;
for(i=100;i<1000;i+=2){//3位数偶数,从100开始到1000止,每次累加2
b=i/100; //分别算出百位、十位、个位
s=(i-b*100)/10;
g=i%10;
if(b!=s&&b!=g&&s!=g){//判断均不相等,就累加一次
cnt++;
}
}
printf("%d\n",cnt);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int main()
{
int count =0;
cout<<"三位偶数为"<<endl;
for(int i = 1 ; i < 10 ; i++ )
for( int j = 0 ; j < 10 ; j ++ )
for( int k = 0 ; k < 10 ; k++)
{
if( (i*100+j*10+k)%2 == 0&&i!=j&&j!=k&&i!=k)
{
count++;
cout<<i*100+j*10+k<<" , ";
}
}
cout<<"\n三位偶数个数为:"<<count<<"个"<<endl;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询