新手上路之我的水题之路

刚开始时,我首先想到的是定义一个int数组,然后让输入的数字从最低位开始在循环不断地*base,从而将

k进制转化成十进制;然后再作取模判断就可以了;

这时在将最低位到最高位依次乘以相应的n次幂是,需要知道读入数字的位数:

while(t>)
{
n++; //n是最后得到的数字位数;
t=t/; //t是输入的数字;
}

  然后得到了k进制转化成十进制的简单代码:

 int main()

{
int i,j,a,b,c,t,sum=,n=;
scanf("%d %d",&c,&b);
t=c;
while(t>)
{
n++;
t=t/;
}
t=c;
for(i=; i<=n; i++)
{
a=t%;
t=t/;
for(j=; j<i; j++)
{
sum+=a*b;
}
}
sum+=c%;
printf("%d\n",sum);
return ;
}

但是用这样的想法得到的代码一直是WA;

后来,经过一阵刻骨铭心的检查,发现应该使用字符串来读入数字;

这就有一个问题:

数字字符如何转化为数字来进行四则运算?

经过dalao的帮助,找到了s [ i ] - ' 0 ';来实现转化;

可是,用字符串改了之后一样不过!!!!!!!!

然后,又是在dalao的帮助下告诉我由于

未告知数据范围,默认为1e6!!!!

那么在a*b的时候就有可能爆炸!!!

没办法,改算法(@﹏@)~

在大佬的提示下,自己写了个除法竖式体会了一下:

最初的算法是从最低位开始乘幂,但实际上从最高位开始会更简单;

定义int x=0;

x=x*base+每次的最高位是s [ i ];

再令 x=x%sum //sum是每位上数字之和;

原理就在于:

1234%6==34%6;

从最高位开始,将可以舍去的位数数字全部舍去,这样就避免了数字过大的问题

一下是好不容易AC的代码C(89)

char s[];
int main()
{
int b,n,i,j,q,t;
while(scanf("%d",&b)==&&b!=)
{
scanf("%s",s);
n=strlen(s);
q=;
t=;
for(i=; i<n; i++)
{
q+=s[i]-'';
}
for(i=; i<n; i++)
{
t=t*b+(s[i]-'');
t=t%q;
} if(t%q==)
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
return ;
}

hoj 1014 Niven Numbers的更多相关文章

  1. HOJ 1444 Humble Numbers

    Humble Numbers My Tags (Edit) Source : University of Ulm Internal Contest 1996 Time limit : 1 sec Me ...

  2. HOJ题目分类

    各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...

  3. JS练习题-Harshad numbers

    在Codewars上面练习,现在到6级的题目了(数字越小越难) 这道题叫Harshad or Niven numbers, 原题http://www.codewars.com/kata/54a0689 ...

  4. POJ题目细究

    acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP:  1011   NTA                 简单题  1013   Great Equipment     简单题  102 ...

  5. 【转】POJ百道水题列表

    以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...

  6. 数位DP问题整理(一)

    第一题:Amount of degrees (ural 1057) 题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1057 题意:[x,y ...

  7. HOJ1014

    Niven Numbers My Tags   (Edit)   Source : Unknown   Time limit : 1 sec   Memory limit : 32 M Submitt ...

  8. HDU 1014 Uniform Generator【GCD,水】

    Uniform Generator Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  9. HDU 1014 Uniform Generator(模拟和公式)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1014 Uniform Generator Time Limit: 2000/1000 MS (Java ...

随机推荐

  1. php阳历转农历的类 谷歌到的

    <?phpclass Lunar {    var $MIN_YEAR = 1891;    var $MAX_YEAR = 2100;    var $lunarInfo = array(   ...

  2. tp框架获取常量信息、方法、命名空间

    获取系统常量信息: public function ShowInFo() { var_dump(get_defined_constants(true)); //如果参数为true,则分类显示 } 在这 ...

  3. xcode8.2 打包问题

    如图 在 iOS 到处 ipa包的时候 会有四个选项   PS:证书的账号密码 是需要填写的1.Save for iOS App Store Deployment(部署) sign and packa ...

  4. 自己搭建了一个简单实用的Web版记事本

    演示播放地址:http://v.youku.com/v_show/id_XMTg0MjY2OTAxNg==.html 技术说明 环境 vs2012开发 sql2008r2数据库 技术 C#基础语言 M ...

  5. 【Java EE 学习 70 下】【数据采集系统第二天】【Action中User注入】【设计调查页面】【Action中模型赋值问题】【编辑调查】

    一.Action中User注入问题 Action中可能会经常用到已经登陆的User对象,如果每次都从Session中拿会显得非常繁琐.可以想一种方法,当Action想要获取User对象的时候直接使用, ...

  6. Ubuntu(Linux系统)虚拟机工具vmtools详细说明

    安装虚拟机工具vmtools大概步骤如下: 个人总结步骤: 第一步:点击虚拟机软件的vm工具栏选项,选择install vmware tools(安装VMware Tools) 第二步:桌面会出现一个 ...

  7. 被Unity5坑惨了

    各种不明所以的crash,导致crash率从0.5%瞬间暴涨到10%. Unity5还是非常不稳定,慎入慎入...

  8. Spring的事务管理

    事务 事务:是逻辑上一组操作,要么全都成功,要么全都失败. 事务特性(ACID) 原子性:事务不可分割 一致性:事务执行的前后,数据完整性保持一致 隔离性:一个事务执行的时候,不应该受到其他事务的打扰 ...

  9. CSS预处器的对比——Sass、Less和Stylus

    预处器的对比--Sass.LESS和Stylus 转载: 英文原文:http://net.tutsplus.com/tutorials/html-css-techniques/sass-vs-less ...

  10. SQLServer生成三位姓名及11位国内电话号码(生成测试数据用)

    SELECT SUBSTRING(N'王李张刘陈杨黄赵吴周徐孙马朱胡郭何高林郑谢罗梁宋唐许韩冯邓曹彭曾肖田董袁潘于蒋蔡余杜叶程苏魏吕丁任沈姚卢姜崔钟谭陆汪范金石廖贾夏韦付方白邹孟熊秦邱江尹薛闫段雷侯龙 ...