黑马程序员技术交流社区

标题: 晒一道奇葩C语言题目。 [打印本页]

作者: 阳光地带    时间: 2014-7-22 22:19
提示: 该帖被管理员或版主屏蔽
作者: sl7s78s8    时间: 2014-7-22 22:28
不是递归题目吗
作者: 阳光地带    时间: 2014-7-22 22:38
sl7s78s8 发表于 2014-7-22 22:28
不是递归题目吗

这么明显用递归太浪费了。
作者: 宋佳强    时间: 2014-7-22 23:39
题目哪来的?
作者: istream    时间: 2014-7-22 23:42
这个题目不是之前有人说过?类似约瑟夫环问题
作者: megatron    时间: 2014-7-22 23:43
这题目不是奇葩吧
作者: 伊甸拾忆    时间: 2014-7-23 00:02
哈哈,如果不用递归,那就直接printf(10+7*3);
作者: fantacyleo    时间: 2014-7-23 00:04
本帖最后由 fantacyleo 于 2014-7-23 00:09 编辑

一个循环搞定了
  1. for (i = 0; i < 8; i++)
  2. {
  3.     if (i == 0)
  4.         a[i] = 10;
  5.     else
  6.         a[i] = a[i - 1] + 3;
  7. }

复制代码



作者: 阳光地带    时间: 2014-7-23 01:11
本帖最后由 阳光地带 于 2014-7-23 01:21 编辑
fantacyleo 发表于 2014-7-23 00:04
一个循环搞定了

那你直接写成这样多好:
  1. a[0] = 10;
  2. for(i = 1; i<8; i++)
  3.     a[i]=a[i-1] + 3;
复制代码

跟写成这样有什么区别:
  1. for(i = 0;i<8; i++)
复制代码

作者: fantacyleo    时间: 2014-7-23 01:18
阳光地带 发表于 2014-7-23 01:11
那你直接写成这样多好:
跟写成这样有什么区别:

应该是a =10 + 7*3;
这题应该就是考察对循环思想的掌握。虽然可以直接输出,还是给出题的留点面子吧。
对于循环,可以再简化一下:
  1. for(i = 1; i<8; i++)
  2.     a[i]= i == 0 ? 10 : a[i-1] + 3;
复制代码



作者: sl7s78s8    时间: 2014-7-23 20:47
阳光地带 发表于 2014-7-22 22:38
这么明显用递归太浪费了。

哈哈,那倒是,口算就可以了,不过不能执行。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2