如何在Dart中输入此C ++代码

时间:2014-01-25 09:39:11

标签: c++ dart

我必须在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;
}

2 个答案:

答案 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循环时sumi为0。 通过这种方式,您可以为计算机忙碌产生一个很好的无限循环; - )

答案 1 :(得分:0)

可以使用递归函数

执行计算位(从1到n的所有数字的平方和)
int recur(int n) => (n > 0) ? (n * n) + recur(n - 1) : 0;

然后,弄清楚如何输入n和输出recur(n)这是一件简单的事情。可以使用stdin.readLineSyncprint完成此操作。这将是以下几行:

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是否足够聪明以进行尾端递归优化。如果没有,堆栈空间可能是个问题。