「已注销」 2021-10-28 11:36 采纳率: 100%
浏览 403
已结题

信息学奥赛3的倍数c++

描述

我们知道,判断一个正整数是不是3的倍数的方法是:

把正整数各位上的数字求和,如果这个和是3的倍数,那么该正整数就是3的倍数。例如:12345:1+2+3+4+5=15。15是3的倍数,所以12345是3的倍数;

1234:1+2+3+4=10。10不是3的倍数,所以1234不是3的倍数。

给出n个正整数,判断它们是不是3的倍数。

对于每个正整数:如果是,输出Yes;否则,输出No。

输入 (读取文件: mod.in)

输入文件名为mod.in。

输入的一行,包含一个正整数n,表示正整数的个数。

以下n行,每行一个正整数a。

输出 (写入文件: mod.out)

输出文件名为mod.out。

输出共n行,每行输出一个Yes或No,表示第i个数是不是3的倍数。

注意:每行的输出只能是Yes或No,注意大小写,不要有多余的其它字符(包括空格)。

输入样例 1

3
13
120
228
输出样例 1

No
Yes
Yes
提示

【样例说明】

13:1+3=4。因为4不是3的倍数,所以13也不是3的倍数。所以输出No

120:1+2+0=3。因为3是3的倍数,所以120也是3的倍数。所以输出Yes

228:2+2+8=12。因为12是3的倍数,所以228也是3的倍数。所以输出Yes

【数据范围】

对于100%的数据,$1<=n<=1000$。

对于30%的数据,$0<a<=2,000,000,000$;

对于100%的数据,$a的位数不超过255$。

来源

2014山东省小学竞赛试题

  • 写回答

1条回答 默认 最新

  • 小宸1145145 2021-10-28 11:37
    关注
    
    #include<iostream>
    #include<cstdio>
    #include<string>
    #include<cstring>
    using namespace std;
    int main(){
        freopen("mod.in","r",stdin);
        freopen("mod.out","w",stdout);
        int q;
        cin>>q;
        long long int n,i,j,len;
        char a[999];
        for(int i1=0;i1<q;i1++){
            cin>>a;
            n=0;
            len=strlen(a);
            for(i=0;i<len;i++){
                n=n+(char)(a[i]-'0');
            }
            if(n%3==0){
                cout<<"Yes"<<endl;
            }else{
                cout<<"No"<<endl;
            }
        }
            
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月5日
  • 已采纳回答 10月28日
  • 创建了问题 10月28日

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题