nyoj1086是否被整除

是否被整除

时间限制:1000 ms  |  内存限制:65535 KB
描述
一个位数不大于100万位的正整数,如果它既能被11整除又能被2的n次方整除就输出YES否则输出NO
输入
输入有多组数据每组数据有两行
第一行一个n代表2的n次方(0<n<18)
第二行一个整数
输出
输出只有一行每行一个YES或NO
样例输入
1
110
2
1100
3
110
样例输出
YES
YES
NO
来源
原创
上传者

TC_蒋鑫博

暴力会超时:

   其实此题有规律:

 能被2的N次方的数整除的数的特征
 如果一个数末N位能被2的N次方的数整除,那么这个数就能被2的N次方的这个数整除。
如能被8(2的3次方)整除的数的特征:这个数字的末三位能被8整除。
能被11整除的数的特征   
把一个数由右边向左边数,将奇位上的数字与偶位上的数字分别加起来,再求它们的差,如果这个差是11的倍数(包括0),那么,原来这个数就一定能被11除.   
 例如:判断491678能不能被11整除.   
 —奇位数字的和9+6+8=23    
 
 —偶位数位的和4+1+7=12  
 23-12=11  因此,491678能被11整除.  这种方法叫"奇偶位差法".

#include<stdio.h>
#include<string.h>
char str[10000005];
int fun()
{
    int i,sum=0,len=strlen(str);
    for(i=0; i<len; i++)
    {
        if(i%2) sum+=(str[i]-'0');
        else sum-=(str[i]-'0');
    }
    if(sum%11==0)
        return 1;
    else return 0;
}
int gun(int n)
{
    int i,len=strlen(str);
    long long sum=0,a=1;
    for(i=0; i<n; i++)
        a*=2;
    for(i=len-n; i<len; i++)
        sum=sum*10+str[i]-'0';
    if(sum%a==0)
        return 1;
    else return 0;
}
int main()
{
    int n;
    while(scanf("%d%s",&n,&str)!=EOF)
    {
        if(fun()&&gun(n))
            printf("YES\n");
        else  printf("NO\n");
    }
    return 0;
 }
#include<cstring>  
using namespace std;  
char s[1000005];  
int main()  
{  
    int n;  
    while(~scanf("%d%s",&n,s))  
    {  
        int t=strlen(s);  
        long long int c=(1<<n)*11,sum=0;  
        for(int i=0; i<t; i++)  
            sum=(sum*10+s[i]-'0')%c;  
        printf(sum?"NO\n":"YES\n");  
    }  
    return 0;  
}  

更多相关文章
  • 去哪儿网CEO庄辰超演讲 去哪儿网CEO庄辰超 更多精彩内容,关注"2014易网未来科技峰会"专题 易网科技讯 6月18日消息,由易网科技和易网新闻客户端联合主办的"2014易网未来科技峰会"今日在北京举行,本次峰会主题为"互联网+改变世界" ...
  • 这篇文章主要为大家介绍了drupal常用判断函数,实例汇总了判断首页.判断用户角色.判断权限等常用函数,具有一定的参考借鉴价值,需要的朋友可以参考下 本文实例汇总了drupal常用判断函数.分享给大家供大家参考.具体如下: 判断是否为首页:代码如下:if( $is_front ){ } 判断用户是否 ...
  • 经过陈冠希的艳照门事件之后,相信各位网友都对自己电脑里的一些隐私文件的保存问题有了更高的安全要求(不吃亏不知道补牢).无论是黑客入侵.电脑丢失.电脑送修等都可能会导致自己的隐私文件泄露.为了避免这些问题,最方便快捷的方法就是对我们的隐私文件进行加密处理.让别人即使拿到你的文件,也因为没有密码问题而无 ...
  • 目前,市场上很多Android手机软件都具有清理SD卡缓存的功能,比如360,金山等等.那么这些软件是如何实现清理sd卡缓存数据功能的呢?下面,我就给大家演示下,这些功能是如何实现的吧. 一.原理 首先我们还是讲一下这个功能实现的原理吧. 将Android手机中常用的一些应用缓存目录,全部放在一个数 ...
  • 文/cloudxiao门槛儿不高面儿又足的Title,再加上互联网+席卷全国的趋势,产品经理逐渐成为不少人选择职业的最佳选择.每天都有不同背景的人在提问:我想转行/入行做产品经理,该如何做起呢?已经有不少大牛给出了较为全面且专业的建议:不论是从画原型,写文档的基本功,到知识体系的构建:从用户需求的把 ...
  • 本文所揭示的 8 个真相,有可能对于首次创业者来说都是蒙在鼓里的事情.他们往往看到风投就尾随而上,没有做足功课就贸然上前,那么吃闭门羹也是在所难免的事情了.你的初创公司正在快速成长,在某个时点上你很有可能在寻找风投的青睐.但是他们不同于天使投资人,不是仅仅写个位于 1 万到 10 万美金不等的支票就 ...
一周排行
  • 本应用为娱乐类应用,汇集了各种笑话集锦.内涵段子及搞笑图片,使得用户感受到快乐,轻松愉悦,开心每一天.应用内容实时更新,有源码你可以学到项目漂亮框架,还可以学到如何从网络扒取数据信息.不多说,直接上图: 源码下载: ...
  • 根据< 西藏自治区教育考试院2014上半年计算机等级考试报名通知 >得知,西藏教育考试院2014上半年计算机三级考试简介如下: 全国计算机等级考试 全国计算机等级考试(NCRE)是由教育部考试中心主办,用 ...
  • 去年一直都很忙,各种各样的事情,年前的开发者日又忙活了一阵,上海,北京,东京连轴转,总算赶上春节这段期间事情不多,可以好好地休个大假调整调整.不好意思这期间也一直没有更新,不过由于GDC正好在举办,有不少振奋人心的产 ...
  • 作为一个程序员,除了天天对着代码,有时间也谢谢感想,开篇之前,先奉上几句好话,一来表扬下我的博客网站,二来感谢下在博客里认识的朋友.感谢那些网站提供这么好的一个地方让我尽情释放自己的涂鸦,感激阅读我文章的同僚们,有你 ...
  •   Scott Mitchell 的ASP.NET 2.0数据教程之三十二:: 数据控件的嵌套 导言 除了静态HTML和数据绑定语法,template也可以包含Web控件和用户控件.这些控件的属性可以通过声明语法,数 ...
  • 虽说现在系统已经跟新到WIN7了,但是有不少用户还是在使用winXP的.那么对于用XP系统的无线网络故障我们应该从哪些方面进行入手解决呢?下文将告诉大家具体的XP系统无线网络故障分析的具体过程. XP系统无线网络故障 ...
  • ExpandableListView的例子 1. 定义groupItem和chidrenItem的layout,略: 2. 实现继承BaseExpandableListAdapter的类,如下: public cla ...
  • 这名28岁的幸运儿说:"坦白地说,我为自己投注5英镑猜德国队将以7比1战胜巴西的举动都感到惊讶,这是有些疯狂的.你也可以说这其中是有预兆的,当时我走到哪,都看到17这个数字.我看钟时正好是17点17分:我的 ...
  • 二分查询答案,判断每一个新形成的向量合在一块能否形成半平面交 1 #include <iostream> 2 #include <cstdio> 3 #include <cstring& ...