濟(jì)南專門做公司網(wǎng)站的公司windows優(yōu)化大師使用方法
實(shí)驗(yàn)名稱:實(shí)驗(yàn)九 枚舉問題(運(yùn)算模擬)
實(shí)驗(yàn)?zāi)康?#xff1a;熟練掌握一些枚舉問題的處理方法。
實(shí)驗(yàn)內(nèi)容:
- 問題描述:(乘積為n個1的數(shù)字游戲)兩位計(jì)算機(jī)愛好者在進(jìn)行“積為n個1的數(shù)字游戲”,其中一位給定一個正整數(shù)p(約定整數(shù)p為個位數(shù)字不是5的奇數(shù)),另一位尋求正整數(shù)q,使得p與q之積為全是1組成的整數(shù)。
輸入:第1行是測試數(shù)據(jù)的組數(shù)t,每組測試數(shù)據(jù)占1行,每行包括一個個位數(shù)字不是5的奇數(shù)p。
輸出:對應(yīng)每組測試數(shù)據(jù)輸出共t行,每行輸出兩個整數(shù),之間有一個空格分隔,一個是滿足條件的整數(shù)q,另一個是p與q之積的1的個數(shù)。
輸入樣例
3 ??????
11 ?????
9 ??????
89 ?????
輸出樣例
1 ?????2 ????????????????????????????????????????
12345679 ????9 ??????????????????????????????????
124843945068664169787765293383270911360799 ????44
- 問題描述:(被除數(shù)的連寫數(shù))從1開始按正整數(shù)的順序連續(xù)寫下去所構(gòu)成的整數(shù)稱為連寫數(shù),要使連寫數(shù)12345678901112...m(連寫到m)能被給定整數(shù)p(p<1000)整除,m至少為多大?
輸入:輸入只有一行,為一個正整整p(p<1000)。
輸出:輸出為一行,包括兩個整數(shù),一個是商,另一個是整數(shù)連寫數(shù)的最后一個數(shù)m,二者之間用空格分隔。
輸入樣例
13 ??????
輸出樣例
94966760847 ?????11
- 問題描述:(階乘中找數(shù))統(tǒng)計(jì)n階乘中數(shù)字p的個數(shù)。
輸入:輸入只有一行,為兩個正整整n、p(n≤800,0≤p≤9)。
輸出:輸出為兩行,一行為n!,另一行為n!中數(shù)字p的個數(shù)。
輸入樣例
10 ?????8
輸出樣例
3628800 ?????????
2 ???????????????
- 問題描述:(尾數(shù)前移問題)整數(shù)n的尾數(shù)是q,把尾數(shù)q移到其前面(成為最高位)后所得的數(shù)為原來整數(shù)n的p倍,原整數(shù)n為多少?
輸入:輸入只有一行,為兩個正整數(shù)q、p(2≤p≤q≤9)。
輸出:輸出為一行,即為所求n。
輸入樣例
8 ????????4
輸出樣例
205128 ????
實(shí)驗(yàn)結(jié)果與分析(運(yùn)行界面截圖,打開需要截的圖,按ALT+PrintScreen后,將光標(biāo)移到下面,單擊右鍵后選擇“粘貼”):
?1.
(Ⅰ)程序代碼及注釋
#include <stdio.h> int main(int argc, char *argv[]) { int a,b,p,c,n,t,f; scanf("%d",&t); while(t--) { scanf("%d",&p); c=0;n=0; f=1; while(c!=0||f!=0) { a=c*10+1; c=a%p; b=a/p; n++; if(f==1&&b==0)continue; printf("%d",b); f=0; } printf(" %d\n",n); } } |
(Ⅱ)運(yùn)行結(jié)果窗口截圖(窗口適當(dāng)縮小)和分析
2.
(Ⅰ)程序代碼及注釋
#include <stdio.h> #include <string.h> int main(int argc, char *argv[]) { char buff[10]; int a,b,p,c,len,m,k,f; scanf("%d",&p); c=1;m=1; f=0; while(c!=0) { m++; sprintf(buff,"%d",m); len=strlen(buff); k=0; while(k<len) { a=c*10+buff[k]-'0'; k++; c=a%p; b=a/p; if(f==0&&b==0)continue; f=1; printf("%d",b); } } printf(" %d\n",m); } |
(Ⅱ)運(yùn)行結(jié)果窗口截圖(窗口適當(dāng)縮小)和分析
3.
(Ⅰ)程序代碼及注釋
#include <stdio.h> int main(int argc, char *argv[]) { int n,p,a,m,i,j,k,w[2000],s; scanf("%d%d",&n,&p); w[0]=1;k=0; for(i=1;i<=n;i++) { m=0; for(j=0;j<=k;j++) { a=w[j]*i+m; w[j]=a%10; m=a/10; } while(m>0) { k++; w[k]=m%10; m=m/10; } } for(s=0,i=k;i>=0;i--) { printf("%d",w[i]); if(w[i]==p)s++; } printf("\n%d\n",s); } |
(Ⅱ)運(yùn)行結(jié)果窗口截圖(窗口適當(dāng)縮小)和分析
4.
(Ⅰ)程序代碼及注釋
#include <stdio.h> int main(int argc, char *argv[]) { int a,m,j,k,p,q,w[100]; scanf("%d%d",&q,&p); w[1]=q;m=0;k=1;a=p*q; while(a!=q) { a=w[k]*p+m; k++; w[k]=a%10; m=a/10; } for(j=k-1;j>=1;j--) printf("%d",w[j]); printf("\n"); } |
(Ⅱ)運(yùn)行結(jié)果窗口截圖(窗口適當(dāng)縮小)和分析