HDU 4278
来源:互联网 发布:程序员能做到多少岁 编辑:程序博客网 时间:2024/06/05 11:01
2012 ACM/ICPC Asia Regional Tianjin Online
Faulty Odometer
题目给出码表读数,要求输出实际走的公里数。
(码表遇见3或8就会向后跳,3→4,8→9,每位数字都会这样。)
思路:
按照从低位向高位的顺序,依次计算跳表数。
代码:
#include
#include
intmain()
{
_int64 num,temp,count;
int a[10],i,j,n;
while(scanf("%I64d",&num),num!=0)
{
temp=num;count=0;
for(i=0;temp!=0;temp/=10,i++)
a[i]=temp%10;
i--;
for(n=0;n<=i;n++)
{
for(j=i;j>=n;j--)
{
if(j-1-n>=0) //最低位至最高位的前一位
{
if(a[j]==9)
count+=7*pow(8.0,j-1-n)*(2*pow(10.0,n));
elseif(a[j]>=4)count+=(a[j]-1)*pow(8.0,j-1-n)*(2*pow(10.0,n));
elsecount+=a[j]*pow(8.0,j-1-n)*(2*pow(10.0,n));
}
else //最高位
{
if(a[j]==9)count+=2*pow(10.0,n);
elseif(a[j]>=4)count+=pow(10.0,n);
}
}
}
printf("%I64d: %I64d\n",num,num-count);
}
return0;
}
#include
intmain()
{
}
- HDU 4278
- HDU 1242 Rescue
- HDU 2112 HDU Today
- HDU 2109 Fighting for HDU
- ZZULI_SummerPractice(3) HDU 1…
- HDU 1579 Function Run Fun
- HDU 1405 The Last Practice
- HDU 2050 折线分割平面
- hdu 1000 A + B Problem
- hdu 1217 Arbitrage
- hdu 1220 Cube
- hdu 1260 Tickets
- hdu 1317 XYZZY
- hdu 1413 文件系统
- hdu 1501 Zipper
- hdu 1063 Exponentiation
- hdu 1688 Sightseeing
- HDU 4279 Number
- POJ 2109
- POJ 2116
- POJ 2136
- POJ 2160 BOX
- POJ 2190 ISBN
- HDU 4278
- C++左移右移操作符研究
- C++的类型转换符:static_cast、dy…
- 虚妄的奇迹,血泪的现实——记Fate&n…
- 统计页码数字问题
- HDU 2050 折线分割平面
- 宏定义应用
- 保留小数点后n位
- 随机数