回 帖 发 新 帖 刷新版面

主题:输入两个正整数a和b,求a到b之间(包含a和b)所有数里面各位数字之和能够被3整除的数的总和。

输入两个正整数a和b,求a到b之间(包含a和b)所有数里面各位数字之和能够被3整除的数的总和。

输入
两个正整数a和b
输出
符合条件的数的总和
样例输入
1 6
样例输出
9
提示
1<=a,b<=1000,注意a不一定小于b

回复列表 (共5个回复)

沙发

#include int main() {int a,b,sum=0; A: cout<<"a="; cin>>a; cout<<"b="; cin>>b; if(a<=1||b>=1000) {cout<<"数据超出范围,请重新输入!"<

板凳

使得a<=b,我只想到 结果等于 = ( b/3 + (a+2)/3 )*( b/3 - (a+2)/3 + 1 )/2

3 楼

[quote]使得a<=b,我只想到 结果等于 = ( b/3 + (a+2)/3 )*( b/3 - (a+2)/3 + 1 )/2[/quote]
不明白你要说什么

4 楼

int a,b,n,sum;

sum=0;

cout<<"Input range of data:(1,1000)"<<endl;

cin>>a>>b;

a=(a+2)/3*3;

b=b/3*3;

n=(b-a)/3+1;

sum=(a+b)*n/2;

cout<<"sum = "<<sum<<endl;

估计你没看明白!

5 楼

#include using namespace std; int main() { int a,b,count; while(cin>>a>>b) { if(a<1||b>1000||a>b) //判断输入是否有效 { cout<<"input is illegal"; return 1; } else for(int i=a;i<=b;i++) //判断a、b之间的数是否是3的整数倍 { int sum,a1,a2,a3,a4; a1=i/1000; a2=(i-1000*a1)/100; a3=(i-1000*a1-100*a2)/10; a4=i%10; sum=a1+a2+a3+a4; if(!(sum%3)) count++; } cout<<"a、b之间能被三整除的整数有"<

我来回复

您尚未登录,请登录后再回复。点此登录或注册