我必须在Dart中制作这个C ++代码,但我发现它真的很难。我尝试观看飞镖视频并在网上搜索,但没有成功。有人可以帮我一个忙吗? 这是代码:
#include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
if (n < 0) return 1;
int sum = 0;
int i = 0;
while (i <= n) sum += i*i;
cout << sum;
return 0;
}
答案 0 :(得分:3)
类似
library x;
import 'dart:io';
void main(List<String> args) {
int n;
print('input a number');
String input = stdin.readLineSync();
n = int.parse(input);
print('n: $n');
if(n < 0) {
exit(1);
}
int sum = 0;
int i = 0;
while(i <= n) {
print(sum);
sum += i * i;
}
print(sum);
}
但不要期望太多。
到达while循环时sum
和i
为0。
通过这种方式,您可以为计算机忙碌产生一个很好的无限循环; - )
答案 1 :(得分:0)
你可以使用递归函数
执行计算位(从1到n的所有数字的平方和)int recur(int n) => (n > 0) ? (n * n) + recur(n - 1) : 0;
然后,弄清楚如何输入n
和输出recur(n)
这是一件简单的事情。可以使用stdin.readLineSync
和print
完成此操作。这将是以下几行:
int recur(int n) => (n > 0) ? (n * n) + recur(n - 1) : 0;
void main( List<String> args ) {
int inNum;
String input = stdin.readLineSync();
inNum = int.parse( input );
if (inNum < 0) {
exit( 1 );
}
print( recur( sum ) );
}
请注意大输入值,我不确定Dart是否足够聪明以进行尾端递归优化。如果没有,堆栈空间可能是个问题。