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 万美金不等的支票就 ...
一周排行
  • 易网科技讯 3月17日消息,据<华尔街日报>报道,知情人士透露,沃达丰已与西班牙有线电视公司Ono的股东达成协议,沃达丰以包含债务在内的70亿欧元(约合97.3亿美元)的价格收购Ono.据称,该收购交易将 ...
  • 近日,360安全中心侦获大量"伪装"过的盗号木马病毒.制毒者利用读者"猎奇"心理 ,伪装成时下热炒的娱乐圈八卦照片下载,比如"何释恋".姚晨离婚." ...
  • 一般CMS都支持上传图片.附件等文件,然而这个目录不需要php脚本执行支持,如果你没有加以禁止的话,会给主机带来安全隐患,Blinux的网站曾经遭遇到坏坏注入. 今天介绍如何取消apache主机指定目录的php脚本执 ...
  •  加法 select sysdate,add_months(sysdate,12) from dual;        --加1年 select sysdate,add_months(sysdate,1) from ...
  •   Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”:与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实 ...
  • 分享一个批量导出当前实例下的所有linkedserver脚本 很多时候,我们都需要导出实例下面的登录用户,job,linkedserver等等 导出job比较复杂,下午写了一个脚本把所有的linkedserver导出 ...
  • 1 .下载 OpenCV 2.3.1 .文中下载了OpenCV-2.3.1-win-superpack (大概124MB,解压后1G多).他不需编译,使用方便 下载地址  2. OpenCV-2.3.1-win-su ...
  • 今天小编为大家带来了剑灵雪域宫召唤攻略分享,感兴趣的朋友们可以跟着小编去下文了解一下哦. 剑灵雪域宫召唤攻略 我来普及一下召唤打雪域宫的输出手法!首先准备工作,腰带必须祝福十段.关于攻击和命中,无所谓,我经常拿着一段 ...
  • 苦等一年多,FDD牌照终于来了.近日,工信部正式宣布,向中国联通.中国电信颁发了第二张4G业务牌照,即FDD-LTE牌照.由此,我国全面进入4G规模商用时代.中国联通表示,将加大投入,加快扩大移动宽带网络覆盖,提升网 ...
  • 短租领域又有新动静--总部位于美国的短租网站Roomorama与欧洲的专业短租公司Lofty合并,并募集了210万美元的种子投资.上述两家网站对外宣称本次交易是"合并",但实际上是将Lofty的资 ...