Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_dotnet
提交
0faa7d10
S
skill_tree_dotnet
项目概览
CSDN 技术社区
/
skill_tree_dotnet
通知
30
Star
6
Fork
4
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
2
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_dotnet
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
2
Issue
2
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
0faa7d10
编写于
12月 15, 2021
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加斐波那契
上级
cd069b44
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
224 addition
and
2 deletion
+224
-2
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.json
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.json
+0
-0
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.md
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.md
+120
-0
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/sample/Program.cs
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/sample/Program.cs
+104
-2
未找到文件。
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.json
0 → 100644
浏览文件 @
0faa7d10
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/Loop.md
0 → 100644
浏览文件 @
0faa7d10
# 斐波那契数列
C# 的 foreach 可以遍历实现了迭代器接口的数据。以下哪个选项的代码不对?
## 答案
```
csharp
int
FibNumbers
(
int
n
){
if
(
n
==
0
)
return
0
;
if
(
n
==
1
)
return
1
;
return
FibNumbers
(
n
-
1
)
+
FibNumbers
(
n
-
2
);
}
foreach
(
int
number
in
FibNumbers
(
7
))
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
```
## 选项
### A
```
csharp
int
[]
fibNumbers
=
new
int
[]
{
0
,
1
,
1
,
2
,
3
,
5
,
8
,
13
};
foreach
(
int
number
in
fibNumbers
)
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
```
### B
```
csharp
IEnumerable
<
int
>
FibNumbers
(
int
n
){
yield
return
0
;
yield
return
1
;
int
a
=
0
;
int
b
=
1
;
for
(
int
i
=
1
;
i
<
n
;
i
++){
int
next
=
a
+
b
;
yield
return
next
;
a
=
b
;
b
=
next
;
}
}
foreach
(
int
number
in
FibNumbers
(
7
))
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
```
### C
```
csharp
var
fibNumbers
=
new
FibNumbers
(
7
);
foreach
(
int
number
in
fibNumbers
){
Console
.
WriteLine
(
$"
{
number
}
"
);
}
class
FibNumbers
:
IEnumerable
<
int
>{
int
n
;
FibNumbersEnumerator
e
;
public
FibNumbers
(
int
n
){
this
.
n
=
n
;
this
.
e
=
new
FibNumbersEnumerator
(
this
.
n
);
}
public
IEnumerator
<
int
>
GetEnumerator
(){
return
this
.
e
;
}
IEnumerator
IEnumerable
.
GetEnumerator
(){
return
this
.
GetEnumerator
();
}
}
class
FibNumbersEnumerator
:
IEnumerator
<
int
>{
int
n
;
int
a
;
int
b
;
int
index
;
public
FibNumbersEnumerator
(
int
n
){
this
.
n
=
n
;
this
.
Reset
();
}
public
int
Current
{
get
{
return
this
.
a
;
}
}
object
IEnumerator
.
Current
{
get
{
return
this
.
Current
;
}
}
public
bool
MoveNext
(){
if
(
this
.
index
<
1
){
this
.
a
=
0
;
this
.
b
=
1
;
}
else
{
int
next
=
this
.
a
+
this
.
b
;
this
.
a
=
this
.
b
;
this
.
b
=
next
;
}
this
.
index
+=
1
;
if
(
this
.
index
==
this
.
n
+
2
){
return
false
;
}
else
{
return
true
;
}
}
public
void
Reset
(){
this
.
a
=
0
;
this
.
b
=
0
;
this
.
index
=
0
;
}
public
void
Dispose
(){}
}
```
data/1..NET初阶/2.C#语法/7.C# 数组和 foreach 语句/sample/Program.cs
浏览文件 @
0faa7d10
// See https://aka.ms/new-console-template for more information
Console
.
WriteLine
(
"Hello, World!"
);
using
System.Collections
;
int
[]
fibNumbers
=
new
int
[]
{
0
,
1
,
1
,
2
,
3
,
5
,
8
,
13
};
foreach
(
int
number
in
fibNumbers
)
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
IEnumerable
<
int
>
FibNumbers
(
int
n
){
yield
return
0
;
yield
return
1
;
int
a
=
0
;
int
b
=
1
;
for
(
int
i
=
1
;
i
<
n
;
i
++){
int
next
=
a
+
b
;
yield
return
next
;
a
=
b
;
b
=
next
;
}
}
foreach
(
int
number
in
FibNumbers
(
7
))
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
var
fibNumbers
=
new
FibNumbers
(
7
);
foreach
(
int
number
in
fibNumbers
){
Console
.
WriteLine
(
$"
{
number
}
"
);
}
class
FibNumbers
:
IEnumerable
<
int
>{
int
n
;
FibNumbersEnumerator
e
;
public
FibNumbers
(
int
n
){
this
.
n
=
n
;
this
.
e
=
new
FibNumbersEnumerator
(
this
.
n
);
}
public
IEnumerator
<
int
>
GetEnumerator
(){
return
this
.
e
;
}
IEnumerator
IEnumerable
.
GetEnumerator
(){
return
this
.
GetEnumerator
();
}
}
class
FibNumbersEnumerator
:
IEnumerator
<
int
>{
int
n
;
int
a
;
int
b
;
int
index
;
public
FibNumbersEnumerator
(
int
n
){
this
.
n
=
n
;
this
.
Reset
();
}
public
int
Current
{
get
{
return
this
.
a
;
}
}
object
IEnumerator
.
Current
{
get
{
return
this
.
Current
;
}
}
public
bool
MoveNext
(){
if
(
this
.
index
<
1
){
this
.
a
=
0
;
this
.
b
=
1
;
}
else
{
int
next
=
this
.
a
+
this
.
b
;
this
.
a
=
this
.
b
;
this
.
b
=
next
;
}
this
.
index
+=
1
;
if
(
this
.
index
==
this
.
n
+
2
){
return
false
;
}
else
{
return
true
;
}
}
public
void
Reset
(){
this
.
a
=
0
;
this
.
b
=
0
;
this
.
index
=
0
;
}
public
void
Dispose
(){}
}
int
FibNumbers
(
int
n
){
if
(
n
==
0
)
return
0
;
if
(
n
==
1
)
return
1
;
return
FibNumbers
(
n
-
1
)
+
FibNumbers
(
n
-
2
);
}
foreach
(
int
number
in
FibNumbers
(
7
))
{
Console
.
WriteLine
(
$"
{
number
}
"
);
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录