超级恶心的面试题

kitsudo 2008-11-14 06:07:04
加精
只允许使用一个循环
先输出1至10内的奇数
然后输出其中的偶数
结果应该是这样的
1
3
5
7
9
2
4
6
8
大家可以竭尽全力的想啊
...全文
26449 912 打赏 收藏 转发到动态 举报
写回复
用AI写文章
912 条回复
切换为时间正序
请发表友善的回复…
发表回复
X_Gundom 2012-10-30
  • 打赏
  • 举报
回复
4楼方法挺独特的 我一开始陷入了判定奇数偶数的圈子里去了~~受教了
tianlunte 2012-10-30
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <string.h>

int main()
{
char odd[5*sizeof(int)+6];
char even[5*sizeof(int)+1+6];
int i;

memset(odd,0,sizeof(odd));
memset(even,0,sizeof(even));
for(i=0;i<5;i++)
{
sprintf((char *)(odd+strlen(odd)),"%d\n",1+2*i);
sprintf((char *)(even+strlen(even)),"%d\n",2*i+2);
}

printf("%s%s",odd,even);

return 0;
}
didijiji 2012-10-12
  • 打赏
  • 举报
回复
这个很强大,不过可读性要稍微差一点。
[Quote=引用 45 楼 的回复:]

C/C++ code

#include "iostream"
using namespace std;

int main()
{
for (int i = 1; i < 10; i == 9 ? i = 2 : i += 2)
{
cout<<i<<endl;
}

return 0;
}
[/Quote]
zengquangui 2012-10-12
  • 打赏
  • 举报
回复
void f(int n)
{
if(n%2)
printf("%d\n",n);
if(n<10)
f(n+1);
}

void main()
{
int n=1;
f(n);
}
  • 打赏
  • 举报
回复
搞得这么复杂……
int A[]={1,3,5,7,9,2,4,6,8];
然后输出…………
林的BLOG 2012-08-23
  • 打赏
  • 举报
回复
不是一样吗。。。。。
[Quote=引用 16 楼 的回复:]

我的代码还可以优化, 优化后的代码:

#define N  9

int main()
{
int i;
for(i=1; i <= N; i++)
{
if(i <= (N+1)/2)
printf("%d ", (i<<1)-1);
else
printf("%d ", (i<<1)-((N+1)&0xfffffffe));
}
return 0;
}……
[/Quote]
template_cplus 2012-08-23
  • 打赏
  • 举报
回复
#include <iostream>


int main()
{

int i,a[2];
int j =0;


for(i=0; i<=2; i++, j++)
{
if(2==i)
{
if(j < 9)
{
a[i] =0;
printf("%d\n", (j%5)*2+(j/5)+1 );
}
else
{
a[i] =2;
}
}
else
{
printf("%d\n", (j%5)*2+(j/5)+1 );
}
}

return 0;
}
xuie0000 2012-08-17
  • 打赏
  • 举报
回复
24楼没人顶吗, 我喜欢这样写代码.
Day_plot 2012-08-16
  • 打赏
  • 举报
回复
[Quote=引用 96 楼 的回复:]


int main(int argc, char **argv)
{
cout << argc << endl;
argc < 9 && main(argc + 2, 0);
cout << 11 - argc ……
[/Quote]


利用main函数的参数递归,学习了
「已注销」 2012-08-16
  • 打赏
  • 举报
回复
写完后发现有类似的:
int i;
for(i = 0; i < 9; ++i) {
printf("%d", ++i);
if(i == 9) {
i = 0;
}
}
ly1chee 2012-07-31
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(void)
{
int table[] = { 1, 3, 5, 7, 9, 2, 4, 6, 8 }, i;
for (i = 0; i < sizeof table/sizeof *table; ++i)
printf("%d\n", table[i]);
return 0;
}
清炒芥兰 2012-07-27
  • 打赏
  • 举报
回复
Mark~
HeartyHu 2012-07-26
  • 打赏
  • 举报
回复
只允许使用一个循环!!!看看4楼的,不错哟[Quote=引用 8 楼 的回复:]

C/C++ code
#include <stdio.h>
//6楼的错了
int main(void)
{
int a[10];
int i, flag;
for(i=0; i<10; ++i)
{a[i]=i+1;}

for(i=0, flag=0; ; i+=2, ++flag)
{
if(i<10)
printf("%d ", a[i]);……
[/Quote]
HeartyHu 2012-07-25
  • 打赏
  • 举报
回复
不错!![Quote=引用 4 楼 的回复:]

for(i=1;i <10;i++)
{
if (i<=5)
cout<<(2*i-1)<<endl;
else
cout<<(2*i-10)<<endl;
}
这样就好了。
[/Quote]
airwolf1216 2012-07-24
  • 打赏
  • 举报
回复
for(int i=0;i%2==1&&i<20;i++)
{
printf("%d\n",i<=9?i,i-11);
}
我没办法避过11
成成_Baby 2012-07-19
  • 打赏
  • 举报
回复
for(int i=1;i<19;i+=2)
{
if(i<=9)
cout<<i<<endl;
else
{
if(i-9!=0)
cout<<i-9<<endl;
}
}
chyanog 2012-07-15
  • 打赏
  • 举报
回复
[Quote=引用 839 楼 的回复:]

还是来晚了。大家的方法真多呀,都费了不少心思。
我有一个方法,应该比较简单,分享一下,呵呵。
大家看0~16的偶数被9整除之后的余数再加1是多少呢? 呵呵
正好是

1
3
5
7
9
2
4
6
8
[/Quote]
很强大
#include <stdio.h>
int main(int argc, char *argv[])
{
int i;
for(i=0;i<=8;i++)
printf("%d\n",2*i%9+1);
return 0;
}

chyanog 2012-07-15
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <math.h>

int main(void)
{
int i;
for (i=1;i<10;i++)
{
double t=1133 - (872819*i)/280. + (109725*pow(i,2))/32. - (580513*pow(i,3))/288. +
(90563*pow(i,4))/128. - (149087*pow(i,5))/960. + (1375*pow(i,6))/64. -
(611*pow(i,7))/336. + (11*pow(i,8))/128. - pow(i,9)/576.;
printf("%.f\n",t);
}
return 0;
}
NUC-94210 2012-07-06
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 的回复:]

C/C++ code

for (int i=0; i<9; i++)
{
if (i <5)
{
cout<<(2 * i + 1)<<" ";
}
else
{
cout<<(i-4)*2<<" ";
}
}
[/Quote]


给力的解题过程啊!!
max_26 2012-06-01
  • 打赏
  • 举报
回复
先用数组存储吧 然后再一个循环输出 可以实现吧
加载更多回复(892)

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧