5位整型的完整金字塔

  • 本文关键字:金字塔 整型 5位 c++
  • 更新时间 :
  • 英文 :


我的c++作业遇到麻烦了。

我需要一个算法,可以把一个5 (x4, x3, x2, x1, x0)位的数字,变成这样的金字塔:

x2 
x3x2x1
x4x3x2x1x0

交货。=比;12345

3
234
12345

我该怎么做呢?我必须把每个数字单独拿出来并按顺序显示吗?

编辑*我这样做了,代码看起来像(对于任何可能有相同问题的人):

int num; 
string str; 
cout << "Type a 5-digit number: ";
cin >> num;

stringstream ss;  
ss << num;  
ss >> str;  
char x0 = str[4];
char x1 = str[3];
char x2 = str[2];
char x3 = str[1];
char x4 = str[0];

cout << "  " << x2 << endl;
cout << " " << x3 << x2 << x1 << endl;
cout << x4 << x3 << x2 << x1 << x0;

是的,你必须单独处理这些数字。

一般来说,我希望学生们试着用以下方法来解决这个问题:

  1. 将数字转换为字符串,然后在该字符串上索引单个字符并显示它们。有多种方法可以进行整型到字符串的转换。最简单的可能是使用std::ostringstream,例如(std::ostringstream() << 1234).str()

  2. 使用算术方法提取字符串的每个数字,并在传递给打印函数时将数字转换为字符。通过将数字转换成一个字符5 -> '5'。顺便说一下,这种转换非常简单,只需将'0'加到数字上即可。所以,5+'0' == '5''0'是一个数字,因为在C语言家族中,字符只是小数字。

可能有许多格式化金字塔的方法,但由于赋值不需要任何灵活性,因此最简单的方法将是最好的:手动添加必要的空格。

最新更新