hoj 1014 Niven Numbers
新手上路之我的水题之路
刚开始时,我首先想到的是定义一个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的更多相关文章
- HOJ 1444 Humble Numbers
Humble Numbers My Tags (Edit) Source : University of Ulm Internal Contest 1996 Time limit : 1 sec Me ...
- HOJ题目分类
各种杂题,水题,模拟,包括简单数论. 1001 A+B 1002 A+B+C 1009 Fat Cat 1010 The Angle 1011 Unix ls 1012 Decoding Task 1 ...
- JS练习题-Harshad numbers
在Codewars上面练习,现在到6级的题目了(数字越小越难) 这道题叫Harshad or Niven numbers, 原题http://www.codewars.com/kata/54a0689 ...
- POJ题目细究
acm之pku题目分类 对ACM有兴趣的同学们可以看看 DP: 1011 NTA 简单题 1013 Great Equipment 简单题 102 ...
- 【转】POJ百道水题列表
以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight ...
- 数位DP问题整理(一)
第一题:Amount of degrees (ural 1057) 题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1057 题意:[x,y ...
- HOJ1014
Niven Numbers My Tags (Edit) Source : Unknown Time limit : 1 sec Memory limit : 32 M Submitt ...
- HDU 1014 Uniform Generator【GCD,水】
Uniform Generator Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 1014 Uniform Generator(模拟和公式)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1014 Uniform Generator Time Limit: 2000/1000 MS (Java ...
随机推荐
- WinForm BaseClass类常用通用方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- eclipse maven maven-archetype-webapp 创建失败
如果在eclipse中发现创建maven失败,大部分的原因是因为本地仓库坏了,或是少东西了,最直接的方法就时删掉重新下载就好了
- octave手册
GNU OCTAVE是一种高级语言,主要用于数值计算.它提供交互式命令行窗口,用于求解线性和非线性问题并计算出数值,并可以进行其它数值实验,还可以用来作为一个批量数据处理语言 运行Ocatve: oc ...
- 【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
(转自:http://blog.csdn.net/reille/article/details/7161942) 作者:reille 本博客网址:http://blog.csdn.net/reille ...
- PHP面试总结
从8月15号来到北京一直到今天,一月有余.来的这段时间一直准备笔试面试,大大小小的公司,乱七八糟面了10多家,近期才安顿下来.面试的这段时间感觉自己成长了不少.初来到这个陌生的城市一脸茫然,不会乘地铁 ...
- 四、线程同步之Lock和Condition
Lock同步锁 Lock 在jdk1.5 提供了Lock以便执行同步操作,和synchronized不同的是Lock提供了显示的方法获取锁和释放锁.Lock提供了以下几个方法,请求和释放锁: voi ...
- java中的集合/容器的数据结构
最近双11在网上买了本 数据结构和算法--java语言实现,正在啃,同时在慕课网上的学习进度来到了集合框架这一类,对于这一块算是刚刚了解,本科的时候数据结构学习的是严蔚敏老师的那本数据结构,代码的实现 ...
- PHP 版本判断 version_compare() 函数
在度娘中简单的找了下,判断当前PHP的版本是否高于某个版本,或者低于某个版本的方法 显示的结果基本上都是一样的,好吧,要不是我忘记了version_compare()这个函数我才不会去找度娘,果断找以 ...
- IT 网址
蒋金楠 (Artech) WCF ,asp.net等 博客地址:http://www.cnblogs.com/artech/tag/WCF/ 伍华聪 ...
- UI神器-SOUI
前言 在Windows平台上开发客户端产品是一个非常痛苦的过程,特别是还要用C++的时候.尽管很多语言很多方法都可以开发Windows桌面程序,目前国内流行的客户端产品都是C++开发的,比如QQ,YY ...