标题:c++加法竖式(原创)
只看楼主
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
得分:0 

2020-03-27 21:17
叶纤
Rank: 8Rank: 8
等 级:禁止访问
威 望:1
帖 子:658
专家分:848
注 册:2019-11-22
得分:0 
我的是英文版翻译来的有些翻译有错误哈https://en.
在 C language Statements里面查
收到的鲜花
  • lin51616782020-03-27 21:44 送鲜花  10朵   附言:感谢

把学习时间浪费在混坛上是傻瓜行为,更何况自己的水平连一两都没到。
2020-03-27 21:20
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
得分:0 
反正闲着无聊,给你们把乘法竖式做了:
程序代码:
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
string add(string a, string b)
{
    int i=a.length (), j=0, k=b.length ();
    string c="";
    while (i || j || k)
    {
        if (i)
        {
            j = j + a[i - 1] - '0';
            i--;
        }
        if (k)
        {
            j = j + b[k - 1] - '0';
            k--;
        }
        c = (char)(j % 10 + '0') + c;
        j /= 10;
    }
    return c;
}
string mult(string a, int b)
{
    int i, j=0;
    string c="";
    for (i = a.length(); i; i--)
    {
        j = b * (a[i - 1] - '0') + j;
        c = (char)(j % 10 + '0')+c;
        j /= 10;
    }
    if (j)c = char(j + '0') + c;
    return c;
}
int main()
{
    string a, b, c, d;
    int i, j, l;
    cin >> a >> b;
    l = a.length() + b.length() + 1;
    cout << setw(l) << a << endl << "*" << setw(l -  1) << b << endl;
    for (i = 0; i < l; i++)cout << "-";
    cout << endl;
    for (i = b.length(); i; i--)
    { 
        d = mult(a, (int)(b[i - 1] - '0'));
        cout << setw(l + i - b.length()) << d << endl;
        for (j = 0; j < b.length() - i; j++)d = d + '0';
        c = add(c, d);
    }
    for (i = 0; i < l; i++)cout << "-";
    cout << endl << setw(l) << c << endl;
    return 0;
}


运行结果:123456789×98765
      123456789
*         98765
---------------
      617283945
     740740734
    864197523
   987654312
 1111111101
---------------
 12193209765585

能编个毛线衣吗?
2020-03-27 22:14
阳光宝宝
Rank: 1
等 级:新手上路
威 望:1
帖 子:12
专家分:0
注 册:2006-6-3
得分:0 
刚学C++,改一下:
程序代码:
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
    int a, b;
    cout <<"请输入一个数回车后再输入一个数:\n";
    cin >> a >> b;
    system("cls");
      cout <<a<<"+"<<b<<"的竖式计算过程如下:\n\n";
      
      std::cout << setw(10)<<a<<"\n";
      cout << setw(2 )<< "+" << setw(8) << b<<endl;
      cout << "-----------\n";
          cout << setw(10) << a + b;
          while (true)
          {
              ;
          }
    return 0;
}

http://abc.
2022-04-11 11:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500654-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.104872 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved