C++程序:求大数除以11的余数


在这个问题中,我们给定一个表示大数的字符串 num。我们的任务是创建一个 C++ 程序来求这个大数除以 11 的余数。

问题描述 − 我们需要找到由字符串定义的数字除以 11 的余数。

让我们举个例子来理解这个问题

输入

num = “43212981843718452”

输出

7

解决方案

为了找到余数,我们显然需要进行除法运算。但是,除以巨大的数字是一个复杂的过程,为了简化这个过程,我们将逐位进行除法。并存储随之而来的余数。此过程需要对包含从 MSB 到 LSB 的数字的整个字符串继续进行。最后打印余数。

程序说明解决方案的工作原理

示例

 在线演示

#include <iostream>
#include <string.h>
using namespace std;
int calcRem(string num){
   int currDigit, rem = 0;
   for (int i = 0; i < num.length(); i++) {
      currDigit = rem * 10 + (num[i] - '0');
      rem = currDigit % 11;
   }
   return rem;
}
int main() {
   string num = "43212981843718452";
   cout<<"The remainder when large number is divided by 11 is"<<calcRem(num);
   return 0;
}

输出

The remainder when large number is divided by 11 is 7

更新于: 2020年9月17日

427 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告