Flutter斐波那契数列生成插件fibonacci的使用
Flutter斐波那契数列生成插件fibonacci的使用
fibonacci
Fibonacci 系列是一个从 0 开始的序列,依次为 0, 1, 1, 2, 3, 5, 8, 13…
简介
这是一个用于打印斐波那契数列并找到斐波那契数列中第 N 个数字的包。
例如:输入 10 将打印到第 10 项的序列。[0, 1, 1, 2, 3, 5, 8]。
斐波那契数列的基本规则是从 0 和 1 开始,每个数字是前两个数字之和。
公式:F(n) = F(n-1) + F(n-2),其中 n >= 3。
这是一个基本实现,用于打印到第 N 项的斐波那契数列。如需了解更多关于此包的信息,请访问 GitHub。此包还可以找到斐波那契数列中的第 N 个数字。
例如:序列的第 4 项是 2。因此,如果输入 4,则输出为 2。
安装
在 pubspec.yaml
文件中添加以下依赖:
dependencies:
fibonacci: 0.0.2
然后运行 flutter pub get
。
示例
查看 example/main.dart
文件以获取完整示例。
import 'package:fibonacci/fibonacci.dart';
void main() {
// 打印斐波那契数列直到第 5 项
var x = Fibonacci.printSeries(size: 5).toString();
print(x); // 输出: [0, 1, 1, 2, 3, 5]
// 获取斐波那契数列中的第 5 项
var y = Fibonacci.printValue(index: 5).toString();
print(y); // 输出: 3
}
示例代码
以下是完整的 Flutter 示例代码,展示如何使用该插件:
import 'package:flutter/material.dart';
import 'package:fibonacci/fibonacci.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Fibonacci',
theme: ThemeData.dark(),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key});
[@override](/user/override)
// ignore: library_private_types_in_public_api
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
String x = ""; // 显示斐波那契数列
String y = "请输入一个数字 N"; // 提示用户输入
final TextEditingController con = TextEditingController();
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: const Text('斐波那契数列'),
backgroundColor: Colors.grey[900],
),
backgroundColor: _getColorFromHex("#8E150D"),
body: Center(
child: ListView(
children: <Widget>[
Container(height: 30),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: Center(
child: Text(
y,
style: const TextStyle(
fontFamily: "Alfa",
fontSize: 25,
color: Colors.black,
fontWeight: FontWeight.bold),
))),
Container(height: 10),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: Column(children: [
SelectableText(
x,
style: const TextStyle(
fontFamily: "Alfa",
fontSize: 18,
color: Colors.black,
fontWeight: FontWeight.bold),
),
Container(height: 30),
])),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: TextField(
minLines: 1,
maxLines: null,
keyboardType: TextInputType.number,
style: const TextStyle(
fontFamily: "Alfa",
fontSize: 18,
color: Colors.black,
//fontWeight: FontWeight.bold
),
decoration: const InputDecoration(
contentPadding:
EdgeInsets.symmetric(horizontal: 10, vertical: 5),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black, width: 2.5),
),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Colors.black, width: 2.5),
),
hintStyle: TextStyle(
fontSize: 18,
fontFamily: "Mono",
fontWeight: FontWeight.normal,
color: Color.fromARGB(255, 29, 24, 24)),
hintText: '请输入您的数字',
),
controller: con,
)),
Container(height: 30),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 12),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 200,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.black),
onPressed: () {
setState(() {
y = "斐波那契数列直到第 ${con.text.trim()} 项:";
x = Fibonacci.printSeries(
size: int.parse(con.text.trim()))
.toString();
});
},
child: const Text("显示到第 N 项"),
)),
Container(height: 20),
SizedBox(
width: 200,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.black),
onPressed: () {
setState(() {
y = "第 ${con.text.trim()}${(int.parse(con.text.trim()) == 1) ? "个" : (int.parse(con.text.trim()) == 2) ? "个" : (int.parse(con.text.trim()) == 3) ? "个" : "个"} 斐波那契数是";
x = Fibonacci.printValue(
index: int.parse(con.text.trim()))
.toString();
});
},
child: const Text("查找第 N 项"),
)),
Container(height: 20),
SizedBox(
width: 200,
child: ElevatedButton(
style: ElevatedButton.styleFrom(
backgroundColor: Colors.black),
onPressed: () {
setState(() {
x = "";
y = "请输入一个数字 N";
con.clear();
});
},
child: const Text("重置"),
)),
]),
),
Container(height: 30),
const Center(
child: SelectableText(
"包由: Gauthiii's Applications 创建",
style: TextStyle(
fontSize: 16.0,
fontWeight: FontWeight.bold,
color: Colors.black))),
Container(height: 30),
],
),
),
);
}
}
_getColorFromHex(String hexColor) {
hexColor = hexColor.replaceAll("#", "");
if (hexColor.length == 6) {
hexColor = "FF$hexColor";
return Color(int.parse("0x$hexColor"));
}
if (hexColor.length == 8) {
return Color(int.parse("0x$hexColor"));
}
}
更多关于Flutter斐波那契数列生成插件fibonacci的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,你可以创建一个简单的插件来生成斐波那契数列。以下是一个示例,展示如何创建一个名为 fibonacci
的插件,并在Flutter应用中使用它。
1. 创建Flutter插件
首先,使用Flutter命令行工具创建一个新的插件项目:
flutter create --template=plugin fibonacci
这将创建一个名为 fibonacci
的插件项目。
2. 实现斐波那契数列生成逻辑
在 lib/fibonacci.dart
文件中,添加斐波那契数列生成的逻辑:
class Fibonacci {
static List<int> generateSequence(int n) {
if (n <= 0) return [];
if (n == 1) return [0];
if (n == 2) return [0, 1];
List<int> sequence = [0, 1];
for (int i = 2; i < n; i++) {
sequence.add(sequence[i - 1] + sequence[i - 2]);
}
return sequence;
}
}
3. 在Flutter应用中使用插件
在你的Flutter应用中,你可以通过导入 fibonacci
插件并使用 Fibonacci.generateSequence
方法来生成斐波那契数列。
首先,确保在 pubspec.yaml
文件中添加对插件的依赖:
dependencies:
flutter:
sdk: flutter
fibonacci:
path: ../fibonacci # 根据你的插件路径调整
然后,在你的Flutter应用中使用插件:
import 'package:flutter/material.dart';
import 'package:fibonacci/fibonacci.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Fibonacci Sequence'),
),
body: Center(
child: FibonacciSequenceWidget(),
),
),
);
}
}
class FibonacciSequenceWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<int> sequence = Fibonacci.generateSequence(10);
return Column(
mainAxisAlignment: MainAxisAlignment.center,
children: sequence.map((number) {
return Text(number.toString());
}).toList(),
);
}
}
4. 运行应用
现在,你可以运行你的Flutter应用,并看到生成的斐波那契数列显示在屏幕上。
flutter run
5. 结果
应用运行后,你将看到一个包含前10个斐波那契数列数字的列表:
0
1
1
2
3
5
8
13
21
34