По заданному числу num
выяснить, сколько непрерывных фрагментов данного числа делится на 11, например, учитывая 1215598, эти непрерывные фрагменты могут быть сформированы:
- 1
- 12
- 121
- 1215
- 12155
- 121559
- 1215598
- 2
- 21
- 215
- 2155
- 21559
- 215598
- 1
- 15
- 155
- 1559
- 15598
- 5
- 55
- 559
- 5598
- 5
- 59
- 598
- 9
- 98
- 8
Правильный ответ будет 4потому что эти непрерывные фрагменты делятся на 11:
Я хочу написать программу на C ++, чтобы решить эту проблему, но я не могу найти эффективный и подходящий способ.
До сих пор я взял ввод числа и сохранитьСделайте это в массиве, и теперь я не могу понять, как я могу разбить число на непрерывные фрагменты и проверить его на делимость.
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int DivisibilityByEleven(int num);
int num;
int main()
{
int result=DivisibilityByEleven(num);
return 0;
}
int DivisibilityByEleven(int num)
{
int counter=0;
cin>>num;
vector<int> arr;
while(num!=0)
{
int temp=num%10;
num=num/10;
arr.push_back(temp);
}
reverse(arr.begin(),arr.end());
for(int i=0;i<arr.size();i++)
{
cout<<arr[i];
}
if(num%11==0)
{
counter++;
}
}