在小于 5000的自然数中,能被 11整除,并且各位数字之和为 13的数,共有多少个?
先判断整除关系,然后获取整数各位数字之和
#include <iostream>
using namespace std;
int fun1(int n)
{
int sum = 0;
while(n>0)
{
sum += n%10;
n/=10;
}
return sum;
}
int main()
{
int count = 0;
for(int i=11;i<5000;i+=11)
{
if(fun1(i) == 13)
count++;
}
cout<<count;
}
Node* InvertedFromList( Node *pHead )
{
//A->B->C
Node *pPrev = pHead; //A
Node *pNext = pHead->mpNext; //B
Node *pNextNext = nullptr; //C
while( nullptr != pNext )
{
pNextNext = pNext->mpNext; //C = B->C
pNext->mpNext = pPrev; //B->A
pPrev = pNext; //A = B
pNext = pNextNext; //B = C
}
pHead->mpNext = nullptr;//C->B->A->null
return pPrev; //return C( new head )
}
问题可以通过编写一个循环来解决。循环遍历小于5000的自然数,对于每个数判断能否被11整除,并且各位数字之和是否为13。如果满足条件,则计数器加一。最后返回计数器的值即可。
以下是一个可能的解决方案的伪代码:
count = 0 # 计数器初始化为0
for i in range(1, 5000):
sum = 0 # 各位数字之和初始化为0
num = i
while num > 0:
sum += num % 10 # 将个位数加入和中
num = num // 10 # 去掉个位数
if i % 11 == 0 and sum == 13:
count += 1
返回 count # 返回满足条件的数的个数
请注意,上述代码是伪代码,不能直接运行。你可以根据自己的实际编程语言知识来实现这个算法。
这题我会,我还是一名小学生,希望采纳:
#include<bits/stdc++.h>
using namespace std;
int check(int x)
{
int res=0;
while(x)
{
res+=x%10;
x/=10;
}
return res;
}
int main()
{
int ans=0;
for(int i=11;i<=4994;i+=11)
{
if(check(i)==13) ans++;
}
cout<<ans<<endl;
return 0;
}
```c++
```
如果程序有问题,跟我讲,我帮解决,记得采纳哦