pat 1049 Counting Ones
2013-03-07 20:36
323 查看
第4,6个点超时。后来发现居然是编程之美的一道原题,用了书上代码,直接AC。
代码:
AC代码:
//1049 22:31
#include<stdio.h>
int main()
{
int n;
int iCount=0;
int iFactor=1;
int iLowerNum=0;
int iCurrNum=0;
int iHigherNum=0;
scanf("%d",&n);
while(n/iFactor!=0)
{
iLowerNum = n -(n/iFactor) *iFactor;
iCurrNum = (n/iFactor)%10;
iHigherNum = n/(iFactor *10);
switch(iCurrNum){
case 0:
iCount+=iHigherNum * iFactor;
break;
case 1:
iCount +=iHigherNum*iFactor + iLowerNum +1;
break;
default:
iCount +=(iHigherNum+1) *iFactor;
break;
}
iFactor*=10;
}
printf("%d",iCount);
return 0;
}
代码:
//1049 20:14-20:35 #include<stdio.h> const int NUM=100000000; int find(int x) { int res=0; while(x){ if(x%10==1) res++; x=x/10; } return res; } int find1(int x) { } int a[NUM]; int main() { int i,j,n; scanf("%d",&n); a[0]=0; for(i=1;i<=n;i++){ a[i]=a[i-1]+find(i); } printf("%d",a ); return 0; }
AC代码:
//1049 22:31
#include<stdio.h>
int main()
{
int n;
int iCount=0;
int iFactor=1;
int iLowerNum=0;
int iCurrNum=0;
int iHigherNum=0;
scanf("%d",&n);
while(n/iFactor!=0)
{
iLowerNum = n -(n/iFactor) *iFactor;
iCurrNum = (n/iFactor)%10;
iHigherNum = n/(iFactor *10);
switch(iCurrNum){
case 0:
iCount+=iHigherNum * iFactor;
break;
case 1:
iCount +=iHigherNum*iFactor + iLowerNum +1;
break;
default:
iCount +=(iHigherNum+1) *iFactor;
break;
}
iFactor*=10;
}
printf("%d",iCount);
return 0;
}
相关文章推荐
- PAT甲级 1049. Counting Ones (30)
- PAT1049:Counting Ones
- PAT (Advanced Level) 1049. Counting Ones (30)
- PAT 1049. Counting Ones (30)
- PAT_A 1049. Counting Ones (30)
- 【PAT 1049】 Counting Ones 数学规律
- PAT 甲级 1049. Counting Ones (30)
- Python实现Pat 1049. Counting Ones (30)
- pat 1049. Counting Ones (30)
- PAT 1049. Counting Ones (30)
- PAT 1049. Counting Ones
- PAT 1049 Counting Ones 数位dp
- 1049. Counting Ones (30)【计算1 的个数】——PAT (Advanced Level) Practise
- PAT 1049. Counting Ones (30)
- PAT 1049. Counting Ones (30)
- 【PAT (Advanced Level)】1049. Counting Ones (30)
- 【PAT】1049. Counting Ones (30)
- ZJU PAT 1049 Counting Ones
- 【PAT甲级】1049. Counting Ones (30)
- pat 1049. Counting Ones (30)