当前位置: 代码迷 >> C语言 >> 求奇数的个数
  详细解决方案

求奇数的个数

热度:351   发布时间:2006-09-04 21:14:11.0
很好解啊
分几位的
把基数放在最后就排列吧
注意0
----------------解决方案--------------------------------------------------------
把所以的可能性都举出来好了

----------------解决方案--------------------------------------------------------
#include <stdio.h>
void main()
{
int i1=1,i2=1,i3=2,i4=3,i5=4,i6=5,i7=6,i8=7;
for(i1=1;i1<=7;i1++)
for(i1=1;i1<=7;i1++)
for(i2=1;i2<=7;i2++)
for(i3=1;i3<=7;i3++)
for(i4=1;i4<=7;i4++)
for(i5=1;i5<=7;i5++)
for(i6=1;i6<=7;i6++)
for(i7=1;i7<=7;i7++)
if(i1%2!=0||i2%2!=0||i3%2!=0||i4%2!=0||i5%2!=0||i6%2!=0||(i7%2!=0))
{
printf("%d%d%d%d%d%d%d\n",i1,i2,i3,i4,i5,i6,i7);

}
}
大家看一下,我不知道做的对不对!很可能不对!嘿嘿
----------------解决方案--------------------------------------------------------
以下是引用神经塔在2006-9-4 22:27:56的发言:
#include <stdio.h>
void main()
{
int i1=1,i2=1,i3=2,i4=3,i5=4,i6=5,i7=6,i8=7;
for(i1=1;i1<=7;i1++)
for(i1=1;i1<=7;i1++)
for(i2=1;i2<=7;i2++)
for(i3=1;i3<=7;i3++)
for(i4=1;i4<=7;i4++)
for(i5=1;i5<=7;i5++)
for(i6=1;i6<=7;i6++)
for(i7=1;i7<=7;i7++)
if(i1%2!=0||i2%2!=0||i3%2!=0||i4%2!=0||i5%2!=0||i6%2!=0||(i7%2!=0))
{
printf("%d%d%d%d%d%d%d\n",i1,i2,i3,i4,i5,i6,i7);

}
}
大家看一下,我不知道做的对不对!很可能不对!嘿嘿

肯定不对了 ,运行都会出现偶数.略作修改,运行好像可以
void main()
{
int i1,i2,i3,i4,i5,i6,i7,i8;
for(i1=0;i1<=7;i1++)
for(i1=0;i1<=7;i1++)
for(i2=0;i2<=7;i2++)
for(i3=0;i3<=7;i3++)
for(i4=0;i4<=7;i4++)
for(i5=0;i5<=7;i5++)
for(i6=0;i6<=7;i6++)
for(i7=0;i7<=7;i7++)
if(i7%2!=0)
{
printf("%d%d%d%d%d%d%d\n",i1,i2,i3,i4,i5,i6,i7);

};
getch();
}
----------------解决方案--------------------------------------------------------

嗯。楼上改的还行!不错,表扬一下!


----------------解决方案--------------------------------------------------------



你们真行!

main()
{
long i;

for(i=1;i<=77777777;i+=2)
{
printf("%ld\n",i);
}
printf("sum=%ld",i/2);

getch();
}

再说LZ也不是那个意思啊
人家意思应该是无重复的数
要不77777777777777777777777777777777777777这个也行啊!!!


----------------解决方案--------------------------------------------------------

呵呵。楼上的更牛b,最简单的方法解决!


----------------解决方案--------------------------------------------------------

楼上的楼上的太NB了!

[此贴子已经被作者于2006-9-5 10:36:07编辑过]


----------------解决方案--------------------------------------------------------
以下是引用cdmalcl在2006-9-5 8:50:48的发言:



你们真行!

main()
{
long i;

for(i=1;i<=77777777;i+=2)
{
printf("%ld\n",i);
}
printf("sum=%ld",i/2);

getch();
}

再说LZ也不是那个意思啊
人家意思应该是无重复的数
要不77777777777777777777777777777777777777这个也行啊!!!

/*加上这个函数判断一下,只是这个函数效率太低*/
int is_same(int num)
{
int i=0,j,a[8];
while(num)
{
a[i]=num%10;
num=num/10;
i++;
}
while(i>=0)
{
j=i-1;
while(j>=0)
{
if(a[j]==a[i])
{
return(0);
}
j--;
}
i--;
}
return(1);
}


----------------解决方案--------------------------------------------------------

#include<stdio.h>
int is_same(long num)
{
int i=0,j,a[8];
while(num)
{
a[i]=num%10;
num=num/10;
i++;
}
while(i>=0)
{
j=i-1;
while(j>=0)
{
if(a[j]==a[i])
{
return(0);
}
j--;
}
i--;
}
return(1);
}

int main()
{
long i,sum=0;

for(i=1;i<=77777777;i+=2)
{
if(is_same(i)==1)
{
//printf("%ld\n",i);
sum++;
}
}
printf("sum=%ld\n",sum);

return(0);
}

/*这段程序运行好几秒钟才出结果*/


----------------解决方案--------------------------------------------------------
  相关解决方案