題目地址:http://acm.hdu.edu.cn/showPRoblem.php?pid=2089
/*********************************************************************************
這個(gè)題第一思路就是對(duì)區(qū)間內(nèi)的每一個(gè)數(shù)字進(jìn)行檢測(cè),但是遇到了一個(gè)問題,超時(shí)。
那么就不能在每次輸入n,m后進(jìn)行尋找吉利數(shù),而是在輸入數(shù)據(jù)之前就用數(shù)組記錄下所有數(shù)據(jù)。
/***********************************************************************************
代碼如下:
/****************
#include<stdio.h>int a[1000005];//存儲(chǔ)從1到i的吉利數(shù)個(gè)數(shù) int f(int i){ while(i) { if(i%10==4||i%100==62) return 1; i=i/10; } return 0;}void r(){ a[0]=0; for(int i=1;i<1000005;i++) { if(f(i))//含有4或62 a[i]=a[i-1]; else a[i]=a[i-1]+1; }}int main(){ int n,m; r(); while(scanf("%d%d",&n,&m),n!=0||m!=0) { printf("%d/n",a[m]-a[n-1]); } return 0;}
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注