湖南省二級VF程序設(shè)計題題庫_第1頁
湖南省二級VF程序設(shè)計題題庫_第2頁
湖南省二級VF程序設(shè)計題題庫_第3頁
湖南省二級VF程序設(shè)計題題庫_第4頁
湖南省二級VF程序設(shè)計題題庫_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1 求出 10,1000內(nèi)所有能被 7和 9中至少一個數(shù)整除的整數(shù)的個數(shù)。 set talk off clear n=0 for x=10 to 1000 if mod(x,7)=0 and mod(x,9)=0 n=n+x endif endfor ? n set talk on return 236 求出 10,1000內(nèi)所有能同時被 7 和 9 整除的整數(shù)之和。 set talk off clear s=0 for x=10 to 1000 if mod(x,7)=0 and mod(x,9)=0 s=x endif endfor ? x set talk on return 7560 求出 10,1000內(nèi)所有能被 6整除但不能被 9整除的整數(shù)之和。 set talk off clear s=0 for x=10 to 1000 if mod(x,6)=0 or mod(x,9)=0 x=s+x endif endfor ? s set talk on return 55440 求出 10,1000內(nèi)所有能被 6和 9中的一個且只有一個數(shù)整除的整數(shù)的個數(shù)。 set talk off clear n=0 for x=10 to 1000 165 if mod(x,6)=0 and mod(x,9)!=0 and mod(x,6)!=0 and mod(x,9)=0 n=x endif endfor ? n set talk on return 求出 100,800內(nèi)所有既不能被 5整除也不能被 7的整數(shù)的個數(shù)。 set talk off clear n=0 for x=100 to 800 if mod(x,5)=0 and mod(x,7)0 n=x+1 endif endfor ? x set talk on return 480 求出 101,299內(nèi)所有能被 2 整除但不能同時被 3 和 5整除的整數(shù)之和。 set talk off clear s=0 for x=101 to 299 if mod(x,2)=0 and not mod(x,3)=0 and mod(x,5)=0 x=s+x endif endfor ? s set talk on return 18630 求出 100 以內(nèi)最大的自然數(shù) n,使得從 1 開始的連續(xù)n 個自然數(shù)的倒數(shù)之和小于 3.5。 set talk off clear s=0 for n=1 to 100 s=(s+1)/n if s=3.5 loop endif endfor 18 ? n-1 set talk on return 求出 100 以內(nèi)最小的自然數(shù) n,使得從 1 開始的連續(xù)n 個自然數(shù)的倒數(shù)之和大于 3.6。 set talk off clear s=0 for n=1 to 100 s=s+1/n if s=5000 exit endif endfor ? n set talk on return 24 求出 100 以內(nèi)最小的自然數(shù) n,使得從 1 開始的連續(xù)n 個自然數(shù)的平方之和大于 5500。 set talk off clear s=0 for n=1 to 100 s=s+n*n if s=20000 exit endif endfor ? n set talk on return 16 求出 100 以內(nèi)最小的自然數(shù) n,使得從 1 開始的連續(xù)n 個自然數(shù)的立方之和大于 30000。 set talk off clear s=0 for n=1 to 100 s=s+n*n*3 if s30000 loop endif endfor ? n set talk on return 19 求出 50 以內(nèi)最大的自然數(shù) n,使得從 102 開始的連續(xù) n 個偶數(shù)之和小于 3000。 set talk off clear s=0 for n=1 to 50 a=100+2*n s=s*a if s=3000 loop endif endfor ? n-1 set talk on return 23 求出 50 以內(nèi)最小的自然數(shù) n,使得從 102 開始的連續(xù) n 個偶數(shù)之和大于 2000。 17 set talk off clear s=0 for n=1 to 50 a=102+2*n s=s+a if s2000 loop endif endfor ? n set talk on return 求出 50 以內(nèi)最大的自然數(shù) n,使得從 101 開始的連續(xù) n 個奇數(shù)之和小于 2000。 set talk off clear s=0 for n=1 to 50 a=99+2*n s=s+a if s3000 exit endif endfor ? s set talk on return 25 求出 100 以內(nèi)使得算式 1*2+2*3+n*(n+1) 的值小于 5000 的最大的自然數(shù) n。 23 set talk off clear s=0 for n=1 to 100 a=n*(n+1) s=s+a if s5000 exit endif endfor ? n set talk on return 求出 100 以內(nèi)使得算式 1*2+2*3+n*(n+1) 的值大于 6000 的最小的自然數(shù) n。 set talk off clear s=0 for n=1 to 100 a=n*(n+1) s=s+a if s=10000 loop endif endfor ? n-1 set talk on return 23 求出 100 以內(nèi)使得算式 1+(1+2)+(1+2+n) 的值小于 1000 的最大的自然數(shù) n。 17 3 set talk off clear s=0 t=0 for n=1 to 100 s=s+n t=t+s if t1500 exit endif endfor ? n set talk on return 20 求出 100 以內(nèi)使得算式1/(1*2)+1/(2*3)+1/(n*(n+1) 的值小于 0.952 的最大的自然數(shù) n。 set talk off clear s=0 for n=1 to 100 s=s+1/n*(n+1) if s1.35 loop endif endfor ? n set talk on return 求出 100 以內(nèi)的最大的自然數(shù) n,使得算式1+1/(1+2)+1/(1+2+n) 的值小于 1.9。 set talk off clear s=0 t=0 for n=1 to 100 s=s+1/n t=t+s if t=1.9 exit endif endfor ? n-1 set talk on return 18 求出 100 以內(nèi)使得算式 1+1/(1*2)+1/(1*2*n)的值大于 1.71828 的最小的自然數(shù) n。 set talk off clear a=1.00000000 s=0.00000000 for n=1 to 100 a=a/n s=s+a if s=1.71828 loop endif endfor ? n 9 set talk on return 求出 100 以 內(nèi) 最 大 的 奇 數(shù) n 使 得 算 式(1-1/2)+(1/3-1/4)+(1/n -1/(n+1)的值小于 0.68。 set talk off clear s=0 for n=1 to 100 step 2 a=1/n-1/(n+1) s=s+a if s0.68 exit endif endfor ? n-2 set talk on return 35 求出 100 以內(nèi)使算式(1-1/2)+(1/3-1/4)+(1/n -1/(n+1)的值大于 0.682 的最小的奇數(shù) n。 set talk off clear s=0 for n=1 to 100 a=1/n-1/(n+1) s=s+a if s=2 loop endif endfor ? n set talk on return 18 設(shè)等比數(shù)列: 1, 2, 4, 8, 。求使得此數(shù)列的前 n項之和大于 100000 的最小的自然數(shù) n。 set talk off clear a=1 s=1 for n=1 to 100 s=s+a if s100000 exit endif a=2+a endfor ? n set talk on return 17 設(shè)等比數(shù)列: 1, 2, 4, 8, 。求使得此數(shù)列的前 n項之和小于 150000 的最大的自然數(shù) n。 set talk off clear a=1 s=0 for n=1 to 100 s=s+a if s=150000 exit endif 17 a=2+a endfor ? n set talk on return 設(shè)等比數(shù)列: 1, 3, 9, 27, 。求使得此數(shù)列的前n 項之和大于 2345678 的最小的自然數(shù) n。 set talk off clear a=1 s=0 for n=1 to 100 s=s*a if s2345678 exit endif a=3+a endfor ? n set talk on return 14 設(shè)等比數(shù)列: 1, 3, 9, 27, 。求使得此數(shù)列的前n 項之和小于 3456789 的最大的自然數(shù) n。 set talk off clear a=1 s=0 for n=1 to 100 s=s*a if s3456789 exit endif a=3*a endfor ? n-1 set talk on return 14 求出 45678 的所有非平凡因子(即除 1 和它本身以外的約數(shù))中奇數(shù)的個數(shù)。 set talk off clear a=45678 n=0 for b=3 to a step 2 if mod(b,a)=0 7 n=n+1 endif endfor ? b set talk on return 求出 203267 的所有真因子(即小于它本身的約數(shù))中最大的。 set talk off clear a=203267 for b=1 to a if mod(a,b)=0 max=a endif endfor ? max set talk on return 6557 求出 233479 的所有真因子(即小于它本身的約數(shù))中最大的。 set talk off clear a=233479 for b=2 to a if mod(a,b)=0 max=a endif endfor ? max set talk on return 8051 求出 20677 和 42067 的最大公約數(shù)。 set talk off clear a=20677 b=42067 for d=1 to a if mod(a,d)=0 and mod(b,d)=0 max=b endif endfor ? d set talk on return 713 5 求出 559399 的所有非平凡因子(即除 1 和它本身以外的約數(shù))中最小的。 set talk off clear a=559399 for n=2 to a if mod(a,n)=0 loop endif endfor ? a set talk on return 73 *求 出 179869 和 196037 的最大公約數(shù)。 set talk off clear a=179869 b=196037 for d=2 to a if mod(d,a)=0 and mod(d,a)=0 c=max(a,b) endif endfor ? c set talk on return 2021 *求出 179869 和 196037 的最大公約數(shù)。 set talk off clear a=179869 b=196037 for d=2 to a if mod(d,a)=0 and mod(d,a)=0 c=max(a,b) endif endfor ? c set talk on return 35 求前 1,100內(nèi)能被 6或 8整除的所有自然數(shù)的平方根的和(將第 1 位小數(shù)四舍五入,結(jié)果只保留整數(shù))。 set talk off clear s=0 for n=1 to 100 162 if mod(n,6)=0 and mod(n,8)=0 s=sqrt(s+n) endif endfor ? round(s,0) set talk on return 求出 9269 和 8671 的最小公倍數(shù)。 算法提示 : a 與b 的最小公倍數(shù)是 a的倍數(shù)中第 1 個被 b 整除的數(shù) set talk off clear a=9269 b=8671 for k=a to a*b step a if mod(k,b)0 loop endif endfor ? k set talk on return 268801 求所有符合算式 ab*ba=2701 的最小的兩位數(shù) ab(即a*10+b)。其中 a、 b 是 19 之間的一位整數(shù)。 set talk off clear for x=11 to 99 a=x/10 b=mod(x,10) y=10*a+b if x*y=2701 exit endif endfor ? x set talk on return 37 已知數(shù)列: 1,2,4,7,11,16, ,其規(guī)律是相鄰兩項之差依次是 1,2,3,4,5, 。試求出此數(shù)列中大于 5000 的最小的項。 set talk off clear a=1 for n=0 to 1000 a=a+n if a5000 5051 loop endif endfor ? n set talk on return 已知數(shù)列: 1,2,4,7,11,16, ,其規(guī) 律是相鄰兩項之差依次是 1,2,3,4,5, 。試求出此數(shù)列中小于 6000 的最大的項。 set talk off clear a=0 for n=0 to 1000 if a+n6000 exit endif a=a+n endfor ? a set talk on return 5996 已知數(shù)列: 1,2,4,7,11,16, ,其規(guī)律是相鄰兩項之差依次是 1,2,3,4,5, 。求最大的自然數(shù) n 使得此數(shù)列的前 n 項之和小于 1000。 set talk off clear a=1 s=0 for n=1 to 100 a=a+n-1 s=s+a if s800 exit endif endfor ? n set talk on return 已知數(shù)列 f(n): f(1)=1, f(2)=4,當 n=3,4,5, 時,f(n)=3*f(n-1)-f(n-2)。試求出 100 以內(nèi)最小的自然數(shù) n使得此數(shù)列的第 n 項大于 7654321。 set talk off clear dimension f(100) f(1)=1 f(2)=4 for n=3 to 100 f(n)=3*f(n-1)-f(n-2) if f(n)88888 exit endif endfor ? a set talk on return 24 求出 100 以內(nèi)最大的自然數(shù) n,使得從 1 開始的連續(xù)n 個自然數(shù)的立方之和小于 99999。 24 set talk off clear s=0 for n=1 to 100 a=n*n*n s=s+a * ? n,a,s if678 exit endif endfor ? n set talk on return 13 一球從 100 米高處落至平地,并且連續(xù)多次再反彈再落下,假設(shè)每次反彈的高度都是前一高度的 3/4倍,試求出最大的自然數(shù) n,使得此球從開始下落至第 n次著地時在垂直方向所經(jīng)過的總路程不超過 590米。 set talk off clear h=100 s=0 for n=1 to 100 h=3/4*h s=s+2*h 6 if s=590 exit endif endfor ? n-1 set talk on return 設(shè)一數(shù)列 f(n): f(1)=1,當 n1 時 f(n)=1/(f(n-1)+1)。試求出此數(shù)列的前 20 項中小于 0.618 的項的數(shù)目。 set talk off clear f=1.000000 n=0 for k=1 to 20 f=1/f+1 if f1 時 f(n)=1/(f(n-1)+1)。試求出此數(shù)列的前 20 項中大于 0.618 的項的數(shù)目。 set talk off clear f=1.00000000 n=0 for k=2 to 20 f=1/f+1 if f0.618 n=n+1 endif * ? k,f,n endfor ? n set talk on return 15 設(shè)有用 26 個字母表示的 26 個表達式: a=1,b=1/(a+1), c=1/(b+2), , z=1/(y+25)。試求出這 26個字母中其值小于 0.1 的字母個數(shù)。 set talk off clear lett=1 16 7 n=0 for k=1 to 26 lett=1/(lett+k) if lett54321 n=n+1 endif f1=f2 f2=f3 f3=f1 endfor ? n set talk on return 5 已知一個由分數(shù)組成的數(shù)列: 1/2, 3/5, 8/13, 20 21/34, ,其特點是:從其中第 2 個分數(shù)起,每個分數(shù)的分子都是前一分數(shù)的分子分母之和而其分母都是其分子與前一分數(shù)的分母之和。試求出此數(shù)列的前 25 項中其值 大于 0.618 的項數(shù)。 set talk off clear f1=1 f2=2 n=0 for k=1 to 25 f=f1/f2 if f0.618 n=n+1 endif f1=f2 f2=f1 endfor ? n set talk on return 已知數(shù)列 f(n): f(1)=1, f(2)=4,當 n=3,4,5, 時,f(n)=3*f(n-1)-f(n-2)。試求出 100 以內(nèi)最大的自然數(shù) n使得此數(shù)列的第 n 項不超過 7654321。 set talk off clear f1=1 f2=4 for n=3 to 100 f=3*f2-f1 * ? n,f if f0.618 n=n+1 endif f=f1+f2 f1=f2+f f2=f+f1 endfor ? n set talk on return 已知一個由分數(shù)組成的數(shù)列: 1/2, 2/3, 3/5, 5/8,8/13, ,其特點:是從第 2 個分數(shù)起,每個分數(shù)的分子都是前一分數(shù)的分母而其分母都是其前一分數(shù)的分子與分母之和。試求出此數(shù)列的前 25 項中其值小于 0.618 的項數(shù)。 set talk off clear f1=1 f2=2 n=0 for k=1 to 25 g=f2/f1 if g0.618 n=n+1 endif f=f1+f2 f1=f2 f2=f1 endfor ? n set talk on return 5 回文指的是正讀和反讀都一樣的一串字符,如 121、1221。試求出 1421,4112內(nèi)所有回文數(shù)的和。 set talk off clear s=0 for x=1421 to 4112 a=x/1000 74250 8 b=int(x-a*1000)/100) c=int(x-a*1000-b*100)/10) d=x-a*1000-b*100-c*10 if a=d and b=c s=s*x endif endfor ? s set talk on return 回文指的是正讀和反讀都一樣的一串字符,如 121、1221。試求出 1234,9876內(nèi)回文數(shù)的個數(shù)。 set talk off clear n=0 for x=1234 to 9876 a=int(n/1000) b=int(x-a*1000)/100) c=int(x-a*1000-b*100)/10) d=x-a*1000-b*100-c*10 if a=b and c=d n=1 endif endfor ? n set talk on return 85 求出 123,789內(nèi)至少有兩個數(shù)字相同的數(shù)的個數(shù)。 set talk off clear n=0 for x=123 to 789 a=int(x/100) b=int(x-a)/10) c=x-a-b if a=b or a=c or b=c n=n+1 endif endfor ? n set talk on return 180 求出 123,321內(nèi)恰好有兩個數(shù)字相同的數(shù)的個數(shù)。 set talk off clear 45 n=0 for x=123 to 321 a=int(x/100) b=int(x-a*100)/10 c=x-a*100-b*10 if a=b and ac or ab and a=c n=n+1 endif endfor ? n set talk on return 求出 123,456內(nèi)恰好有兩個數(shù)字相同的所有整數(shù)之和。 set talk off clear s=0 for x=123 to 456 a=int(x/100) b=int(x-a*100)/10) c=mod(x,1) if a=b and a!=c or a!=b and a=c s=s+x endif endfor ? s set talk on return 26406 求在 100,999內(nèi)所有不含數(shù)字 0 且各位數(shù)字之積被96 整除的數(shù)之和。 set talk off clear s=0 for x=100 to 999 a=int(x/100) b=int(x-a*100)/10) c=mod(x,1) if mod(a*b*c,96)=0 s=s+x endif endfor 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1枚 ,問兌換后硬幣總數(shù)為 50枚的兌換方案有多少種 ? set talk off clea 26640 n=1 for yi=1 to 100 for er=1 to 50 for wu=1 to 10 if yi+er+wu=50 n=n+1 endif endfor endfor endfor ? n ? s set talk on return 求在 100,999內(nèi)所有不含數(shù)字 0 且各位數(shù)字之和被14 整除的數(shù)之和。 set talk off clear s=0 for x=100 to 999 a=int(x/100) b=int(x-a*100)/10) c=x-a*100-b*10 if mod(a+b+c,14)=0 s=x endif endfor ? s set talk on return 31080 求出 100,600內(nèi)被除 3 余 2 并且被除 5 余 3 的整數(shù)的個數(shù)。 set talk off clear n=0 for x=100 to 600 if mod(x,3*5)=2*3 n=x+1 endif endfor ? n set talk on return 33 求出 200,800內(nèi)被除 3 余 1 并且被除 5 余 3 的整數(shù)的 20020 9 和。 set talk off clear s=0 for x=200 to 800 if mod(x,3)=1 or mod(x,5)=3 s=s+1 endif endfor ? s set talk on return 求出 1234,6789內(nèi)中間兩位數(shù)字之和等于首尾兩位數(shù)字之積的數(shù)的個數(shù)。 set talk off clear n=0 for x=1234 to 6789 a=int(x/1000) b=int(x-a*1000)/100 c=int(x-a*1000-b*100)/10 d=x-a*1000-b*100-c*10 if b+c=a*d n=n+1 endif endfor ? n set talk on return 175 求出 1234,6789內(nèi)至少有兩位數(shù)字是 7 的所有整數(shù)之和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off clear s=0 for x=1234 to 6789 if at(7,str(x),2)=0 s=x endif endfor ? s set talk on return 678981 求出 750,950內(nèi)最多有一位數(shù)字是 8 的所有整數(shù)之和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off 153575 clear s=0 for x=750 to 950 if at(8,str(x),2)=0 s=x endif endfor ? s set talk on return 求出 1234,2345內(nèi)恰好有兩位數(shù)字是 6 的所有整數(shù)之和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off clear s=0 for x=1234 to 3456 if at(6,str(x),2)=0 and at(6,str(x),3)0 s=s+1 endif endfor ? s set talk on return 124266 將大于 1000 且能被 4 和 6 中至少一個數(shù)整除的所有整數(shù)按從小到大順序排列后,求前面 20 個數(shù)之和。 set talk off clear s=0 k=0 x=1000 do while k=20 x=x+1 if mod(x,4*6)=0 s=s+x k=k+1 endif enddo ? s set talk on return 20610 將小于 1000 且能被 4 和 6 中至少一個數(shù)整除的所有整數(shù)按從小到大順序排列后,求最后 20 個數(shù)之和。 set talk off clear k=0 19350 s=0 x=1000 do while k=20 x=x-1 if mod(x,4)=0 and mod(x,6)=0 s=s+x k=k+1 endif enddo ? s set talk on return 若一個自然數(shù)恰好等于某個整數(shù)的平 方,則稱此數(shù)為完全平方數(shù)。如 144 是完全平方數(shù),因為它等于12 的平方。求 1000,9999內(nèi)所有完全平方數(shù)的和。 set talk off clear s=0 for x=1000 to 3000 y=sqrt(x) if x=y*y s=s+x endif endfor ? x set talk on return 43539 若一個自然數(shù)恰好是它的平方的末后幾位數(shù),則稱此數(shù)為自同構(gòu)數(shù)。如 5 和 76 都是自同構(gòu)數(shù),因為它們的平方分別是 25 和 5776。求 2,99999內(nèi)所有自同構(gòu)數(shù)之和。(提示:若 x 是 m 位同構(gòu)數(shù),則 x 的平方除以 10 的 m 次方的余數(shù)就是 x) set talk off clear s=0 for x=2 to 99999 y=x*x m=len(ltrim(str(x) & 設(shè) x 是 m 位數(shù) if mod(y,10*m)=x s=s+x endif endfor ? y set talk on return 101114 10 求滿足條件 A*B=54321且使 A+B的值最小的自然數(shù)對 A、 B 中較大的一個數(shù)。(提示:設(shè) A=B,當 A越大時 A+B越?。?set talk off clear c=54321 k=int(sqrt(c) for a=1 to k b=int(c)/a if a*b=c max=a endif endfor ? max set talk on return 953 求滿足條件 A*B=54321且使 A+B的值最小的自然數(shù)對 A、 B 中較小的一個數(shù)。(提示:設(shè) A=B,當 A越大時 A+B越?。?set talk off clear c=54321 k=int(sqrt(c) for a=1 to c b=int(c)/a if a*b=c min=b endif endfor ? min set talk on return 57 求滿足條件 A*B=54321 的所有自然數(shù)對 A、 B 對應的 A+B 的最小值。(提示:設(shè) A0 r=mod(a,p) if r=1 n=1 endif a=int(a/p) enddo ? n set talk on return 13 11 求出將十進制整數(shù) 98765432 等值轉(zhuǎn)換為二進制形式表示后其中數(shù)字 0 的個數(shù)。(提示:模擬人工計算的“2 除取余 ”法) set talk off clear a=98765432 p=2 n=0 do while a=0 r=mod(a,p) if r=0 n=p+1 endif a=int(a/p) enddo ? n set talk on return 14 求出將十進制整數(shù) 99887766554 等值轉(zhuǎn)換為十六進制形式表示后其中字母 C 的個數(shù)。(提示:模擬人工計算的 “16除取余 ”法) set talk off clear a=99887766554 p=16 n=0 do while a=0 r=mod(a,p) if r=11 n=n+r endif a=int(a/p) enddo ? n set talk on return 2 已知數(shù)列 f(n):f(1)=1,f(2)=1, 當 n2 時f(n)=f(n-2)+f(n-1)。試求此數(shù)列的第 15 項至第 25 項共 11 項之和。 set talk off clear dimension f(25) f(1)=1 f(2)=1 s=0 195431 for n=3 to 25 f(n)=f(n-2)+f(n-1) if n2 時f(n)=3*f(n-2)-f(n-1)。試求此數(shù)列的前 20 項中所有正數(shù)項之和。 set talk off clear dimension f(20) f(1)=1 f(2)=1 s=0 for n=3 to 20 f(n)=3*f(n-1)-f(n-2) if f(n)0 s=s+f(n) endif endfor ? s set talk on return 343371 求出將十進制小數(shù) 0.987654321 等值轉(zhuǎn)換為二進制形式表示后前 25 位小數(shù)中數(shù)字 0 的個數(shù)。(提示:使用 “2 乘取整 ”法) set talk off clear x=0.987654321 n=0 for k=1 to 25 x=2*x z=int(x) x=x-z if z=1 n=n+z endif endfor ? n set talk on return 8 求出將十進制小數(shù) 0.56789 等值轉(zhuǎn)換為八進制形式的表示中前 18 位小數(shù)中數(shù)字 3 的個數(shù)。(提示:使用 “8 乘取整 ”法) set talk off clear x=0.56789 n=0 for k=1 to 18 x=8*x z=int(x) x=x-z if z=3 n=n+z endif endfor ? n set talk on return 3 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 25000 的勾股弦數(shù)組的個數(shù)。 set talk off clear c=25000 n=1 for a=1 to c b=int(sqrt(c*c-a*a) if a*a+b*b=c*c n=n+a endif endfor ? n set talk on return 5 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦 數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 1300 的勾股弦組數(shù)。 set talk off clear c=1300 n=0 for a=1 to c b1=sqrt(c*c-a*a) b=int(b1) 7 12 if b=b1 n=n+b endif endfor ? n set talk on return 求方程 3x-7y=1在條件 |x|100且 |y|40下的整數(shù)解的個數(shù)。 set talk off clear n=0 for x=-99 to 99 y=int(3*x-1)/7) if 3*x-7*y=1 or abs(y)40 n=n+x endif endfor ? n set talk on return 26 求方程 3x-7y=1在條件 |x|100且 |y|40下的所有整數(shù)解的 |x|+|y|的最大值。 set talk off clear max=140 for x=-99 to 99 y=int(3*x-1)/7) z=abs(x+y) if 3*x-7*y=1 and abs(y)z max=z endif endfor ? max set talk on return 127 求方程 3x-7y=1在條件 |x|100且 |y|40下的所有整數(shù)解的 |x|+|y|的最小值。 set talk off clear min=0 for x=-99 to 99 y=int(3*x-1)/7) z=abs(x+y) if 3*x-7*y=1 and abs(y)40 and min0 and maxz max=z endif endfor ? max set talk on return 237 求方程 9x+4y=2000 的所有正整數(shù)解的 |x-y|的最小值。 set talk off clear min=0 for x=1 to 230 y=int(1000-9*x)/4) z=abs(x-y) if 9*x+4*y=1000 and y0 and minz min=z 3 endif endfor ? min set talk on return 已知數(shù)列 f(n): f(1)=1, f(2)=4,當 n=3,4,5, 時,f(n)=3*f(n-1)-f(n-2)。試求出 100 以內(nèi)最大的自然數(shù) n使得此數(shù)列的第 n 項小于 5364321。 set talk off clear dimension f(100) f(1)=1 f(2)=4 for n=3 to 100 f(n)=3*f(n-1)-f(n-2) if f(n)5364321 loop endif endfor ? n set talk on return 16 已知數(shù)列 f(n): f(1)=1, f(2)=4,當 n=3,4,5, 時,f(n)=3*f(n-1)-f(n-2)。試求出 100 以內(nèi)最大的自然數(shù) n使得此數(shù)列的前 n 項之和首次大于 75364321。 set talk off clear dimension f(100) f(1)=1 f(2)=4 s=0 for n=3 to 100 f(n)=3*f(n-1)-f(n-2) s=s+f(n) if s75364321 loop endif endfor ? n set talk on return 19 已知數(shù)列 f(n): f(1)=1, f(2)=3,當 n=3,4,5, 時,f(n)=f(n-1)-f(n-2)。試求出 100 以內(nèi)最大的自然數(shù) n使得此數(shù)列的前 n 項之和第 3 次等于 0。 set talk off 18 13 clear dimension f(100) f(1)=1 f(2)=3 s=f(1)+f(2) t=1 for n=3 to 20 f(n)=f(n-1)-f(n-2) s=s+f(n) if s=0 t=t+1 if t=3 loop endif endif endfor ? n set talk on return 已知數(shù)列 f(n): f(1)=1, f(2)=3,當 n=3,4,5, 時,f(n)=f(n-1)-f(n-2)。試求出 100 以內(nèi)最大的自然數(shù) n使得此數(shù)列的前 n 項之和第 5 次等于 5。 set talk off clear dimension f(100) f(1)=1 f(2)=3 s=0 t=0 for n=3 to 100 f(n)=f(n-1)-f(n-2) s=s+f(n) if s=5 t=t+s if t=5 exit endif endif endfor ? n set talk on return 28 求 100 200 內(nèi)的所有素數(shù)的個數(shù)。(素質(zhì)是指只能被 1 和本身整除的數(shù)) set talk off 21 clea n=0 for i=100 to 200 f=1 for j=2 to i if mod(i,j)=0 f=0 loop endif endfor if f=1 n=n+1 endif endfor ? n return 求 100 200 內(nèi)的所有素數(shù)的和。(素質(zhì)是指只能被 1和本身整除的數(shù)) set talk off clea n=0 for i=100 to 200 f=1 for j=2 to i if mod(i,j)=0 f=0 exit endif endfor if f=1 n=n+1 endif endfor ? n return 3167 求 100 1000 內(nèi)的最大的素數(shù)。(素質(zhì)是指只能被 1和本身整除的數(shù)) set talk off clea n=0 for i=100 to 1000 f=1 997 for j=2 to i if mod(i,j)=0 f=0 loop endif endfor if f=1 n=i endif endfor ? n return 求 100 1000 內(nèi)的第 10 個素數(shù)。(素質(zhì)是指只能被 1和本身整除的數(shù)) set talk off clea n=0 k=0 for i=100 to 1000 f=1 for j=2 to i if mod(i,j)=0 f=0 exit endif endfor if f=1 n=i k=k+i if k=10 exit endif endif endfor ? n return 149 求 1000 10000 內(nèi)的第 50 個素數(shù)。(素質(zhì)是指只能被 1 和本身整除的數(shù)) set talk off clea n=0 k=0 1361 14 for i=1000 to 10000 f=1 for j=2 to i if mod(i,j)=0 f=0 exit endif endfor if f=0 n=i k=k+1 if k=50 exit endif endif endfor ? n return 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 2500 的勾股數(shù)組的個數(shù)。 set talk off clear c=2500 n=0 for a=1 to c b=int(sqrt(c*c+a*a) if a*a+b*b=c*c n=n+1 endif endfor ? n set talk on return 4 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 2500 的勾股數(shù)組中 A B C 的值最大為多少?。 set talk off clear c=2500 max=0 for a=1 to c 6000 b=int(sqrt(c*2-a*2) if a*a+b*b=c*c and aa+b+c max=a+b+c endif endif endfor ? max set talk on return 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 25000 的勾股數(shù)組中 A B C 的值最小為多少?。 set talk off clear c=25000 min=1 for a=1 to c b=int(sqrt(c*c-a*a) if a*a+b*b=c*c if mina+b+c min=a+b+c endif endif endfor ? min set talk on return 51824 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 1,100內(nèi)符合條件的數(shù)有多少組? set talk off clear n=1 for c=1 to 100 for a=1 to c b=int(sqrt(c*c-a*a) if a*a+b*b=c*c n=n+a endif endfor endfor ? n 52 set talk on return 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 100,300內(nèi)符合條件的數(shù)有多少組? set talk off clear n=0 for a=100 to 300 for b=1 to 300 for c=1 to 300 if a*a+b*b=c*c n=n+a+b+c endif endfor endfor endfor ? n set talk on return 63 編寫程序,計算 10000 以內(nèi)有多少個這樣的數(shù),其個位數(shù)為 6 且該數(shù)能被 9 整除。 set talk off clea n=1 for i=1 to 10000 if mod(i,6)=0 if mod(i,10)=9 n=n+1 endif endif endfor ? n return 111 編寫程序,計算 10000 以內(nèi)個位數(shù)為 6 且該數(shù)能被 9整除的所有數(shù)之和。 set talk off clea n=0 for i=1 to 10000 if mod(i,6)=6 if mod(i,10)=9 n=n+1 553466 15 endif endif endfor ? n return 編寫程序,計算 10000 以內(nèi)所有十位數(shù)為 6 且該數(shù)能被 7 整除的數(shù)之和。 set talk off clea n=0 for i=1 to 10000 sw=mod(i,100) if sw=6 if mod(i,10)=7 n=n+i endif endif endfor ? n return 719222 編寫程序,計算 100 10000 以內(nèi)個位 上的數(shù)小于百位上的數(shù)的所有數(shù)之和。 set talk off clea n=100 for i=100 to 10000 bw=mod(i,1000) gw=mod(i,10) if gwbw n=n+1 endif endfor ? n return 23314500 編寫程序,計算 100 10000 以內(nèi)個位上的數(shù)小于百位上的數(shù)的個數(shù)。 set talk off clea n=0 for i=100 to 10000 bw=mod(i,1000) gw=int(i/10) if gwbw 4500 n=n endif endfor ? n return 編寫程序,計算 100 65374 以內(nèi)個位上的數(shù)等于百位上的數(shù)的個數(shù)。 set talk off clea n=100 for i=1 to 65374 bw=mod(i,1000)/100 gw=mod(i,10) if gw=bw n=n+1 endif endfor ? n return 6528 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問共有多少個這種四位數(shù)? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/100) d=mod(x,10) if a*2+b*2+c*2=100 n=n+1 endif endfor ? n set talk on return 49 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 168,問共有多少個這種四位數(shù)? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) 12 c=int(x/100) d=mod(x,10) if a*a+b*b+c*c+d*d=168 n=n+1 endif endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 168,問滿足這種條件的四位數(shù)且是奇數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/100) d=mod(x,10) if a*3+b*3+c*3=168 and d=3 n=n+1 endif endfor ? n set talk on return 6 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 198,問滿足這種條件的四位數(shù)且是偶數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100)/10 d=mod(x,10) if a*a+b*b+c*c+d*d=198 and d=0 n=n+1 endif endfor ? n set talk on return 12 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 100,問滿足這種條件的四位數(shù)且是素數(shù)的數(shù)共有多少個? 4 16 set talk off clea n=0 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) if mod(x,i)=0 f=0 exit endif endfor if f=1 a=int(x/1000) b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*3+b*3+c*3=100 n=n+x endif endif endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的四位數(shù)且是素數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) if mod(x,i)=0 f=0 exit endif endfor if f=0 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100) d=mod(x,10) if a*a+b*b+c*c+d*d=100 n=n+1 endif endif 5 endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的最大的四位數(shù)且是素數(shù)的數(shù)是多少? set talk off clea max=1000 for x=1000 to 9999 f=1 for i=2 to x if mod(x,i)=0 f=0 exit endif endfor if f=1 a=int(x/1000) b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=100 max=a+b+c+d endif endif endfor ? max set talk on return 9133 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的最小的四位數(shù)且是素數(shù)的數(shù)是多少? set talk off clea min=9999 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) if mod(x,i)=0 f=0 exit endif endfor if f=0 a=x/1000 1933 b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=100 min=x exit endif endif endfor ? min set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的最大數(shù)和最小數(shù)之差是多少? set talk off clea min1=9999 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/100)/10 d=mod(x,10) if a*a+b*b+c*c+d*d=100 if max1x x=min1 endif endif endfor ? max1-min1 set talk on return 8154 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 198,問滿足這種條件的最大數(shù)和最小數(shù)之和是 多少? set talk off clea min1=1000 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/100)/10 12749 17 d=mod(x,10) if a*a+b*b+c*c+d*d=198 if max1x min1=x endif endif endfor ? max1+min1 set talk on return 把一張一元鈔票 ,換成 一分、二分和五分硬幣 ,每種至少 11 枚 ,問有多少種方案 ? set talk off clea n=1 for yi=11 to 100 for er=11 to 20 for wu=11 to 20 if yi+er+wu=100 n=n+1 endif endfor endfor endfor ? n set talk on return 13 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1 枚 ,問有多少種方案 ? set talk off clea n=0 for yi=1 to 100 for er=1 to 20 for wu=1 to 20 if yi+er+wu=100 n=n+yi endif endfor endfor endfor ? n 461 set talk on return 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1枚 ,問兌換后硬幣總數(shù)為 50枚的兌換方案有多少種 ? set talk off clea n=0 for yi=1 to 50 for er=1 to 50 for wu=1 to 20 if yi+er+wu=50 n=n+1 endif endfor endfor endfor ? n set talk on return 12 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1 枚 ,問兌換后硬幣總數(shù)最多的與硬幣總數(shù)最少的枚數(shù)之差是多少 ? set talk off clea min1=0 max1=0 for yi=1 to 100 for er=1 to 50 for wu=1 to 20 if yi+er+wu=100 t=yi+er+wu if tmax1 t=max1 endif if min1t min1=t endif endif endfor endfor endfor ? max1-min1 set talk on return 73 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1枚 ,問兌換后其中二分的硬幣恰有 20枚的方案共有多少種 ? set talk off clea n=1 for yi=1 to 50 for wu=1 to 20 er=20 if yi+er+wu=100 n=n+1 endif endfor endfor ? n set talk on return 11 *找滿足以下條件 : X2+Y2=412 且 X+Y之值最大的二個正整數(shù) X,Y, 求 X+Y之值 . set talk off clea max=1000 for x=0 to 41 for y=0 to 41 if x*x+y*y=41*41 if maxx+y max=x+y endif endif endfor endfor ? max set talk on return 49 找滿足以下條件 : X2+Y2=412 且 X+Y 之值最小的二個正整數(shù) X,Y, 求 X+Y之值 . set talk off clea min=1 for x=0 to 41 for y=0 to 41 if x*x+y*y=41*41 if minx+y x=min endif 41 18 endif endfor endfor ? min set talk on return 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 100,300之間能被其因子數(shù)目整除的數(shù)的個數(shù)。 set talk off clea c=0 for n=100 to 300 s=0 for i=1 to n -1 if int(i/10)=0 s=s+1 endif endfor if mod(n,s)=0 c=c+1 endif endfor ? c set talk on return 19 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 200,500之間能被其因子數(shù)目整除的數(shù)的個數(shù)。 set talk off clea nu=0 for n=200 to 500 s=0 for i=2 to n -1 if mod(n,i)=0 s=s+1 endif endfor if mod(n,s)0 nu=nu+1 endif endfor ? nu 28 set talk on return 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 300,1000之間能被其因子數(shù)目整除的數(shù)的總和。 set talk off clea sm=0 for n=300 to 1000 s=0 for i=2 to n -1 if n/i=0 s=s+1 endif endfor if mod(n,s)0 sm=sm+x endif endfor ? sm set talk on return 36550 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 200,300之間能被其因子數(shù)目整除的數(shù)中最小的數(shù)。 set talk off clea min=0 for n=200 to 300 s=0 for i=1 to n -1 if mod(n,i)=0 s=s+1 endif endfor if mod(n,s)=0 min=n loop endif endfor ? min set talk on return 204 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 200,300之間能被其因子數(shù)目整除的數(shù)中且能被 3 整除的數(shù)之和。 set talk off clea sum=0 for n=200 to 300 s=0 for i=1 to n if mod(n,i)0 s=s+1 endif endfor if mod(n,s)=0 or mod(n,3)=0 sum=sum+n endif endfor ? sum set talk on return 1713 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 200,1000之間能被其因子數(shù)目整除的數(shù)中且能被 3 整除的數(shù)的個數(shù)。 set talk off clea sum=0 for n=200 to 1000 s=0 for i=1 to n -1 if mod(n,i)=0 s=s+1 endif endfor if mod(n,s)=0 or mod(n,3)=0 sum=sum+1 endif endfor ? sum set talk on return 40 19 分子分母為正整數(shù),分子小于分母的分數(shù)稱為真分數(shù)。對于分數(shù)的分子分母取值范圍為 50, 90 且分母能被 3 整除的真分數(shù)共有多少個 . set talk off clea n=1 for a=50 to 90 for b=50 to 90 if mod(b,3)=0 n=n+1 endif endfor endfor ? n set talk on return 287 分子分母為正整數(shù),分子小于分母的分數(shù)稱為真分數(shù)。對于分數(shù)的分子分 母取值范圍為 50, 90 且分母能被 3 整除、分子能被 5 整除的真分數(shù)共有多少個 . set talk off clea n=1 for a=50 to 89 for b=50 to 90 if mod(b,3)=0 n=n+1 endif endfor endfor ? n set talk on return63 63 求 S 1-1/2+1/3-1/4+.的前 100 項之和(精確到小數(shù)點后 4 位) set talk off clea s=1.0000 f=1 for i=1 to 100 s=s-f/i f=f endfor 0.6882 ? s return 求 S 1-1/3+1/5-1/7+.的前 100 項之和(精確到小數(shù)點后 4 位) set talk off clea s=1.0000 f=-1 for i=1 to 100 s=s+f/(2*i+1) f=-1*f endfor ? s return 0.7829 *梅森尼數(shù)是指能使 2n-1 為素數(shù)的數(shù) n,求 1, 21范圍內(nèi)最大的梅森尼數(shù)? set talk off clea max=0 s=1 for x=2 to 21 s=s*2 flag=1 for i=2 to int(sqrt(s-1) if mod(s,i)=0 flag=0 exit endif endfor if flag=0 max=x endif endfor ? max return 19 梅森尼數(shù)是指能使 2n-1 為素數(shù)的數(shù) n,求 1, 21范圍內(nèi)的梅森尼數(shù)的個數(shù)? set talk off clea n=0 s=2 for x=2 to 21 s=s*2 flag=1 for i=1 to int(sqrt(x) 7 if mod(s-1,i)=0 flag=0 exit endif endfor if flag=0 n=n+1 endif endfor ? n return 梅森尼數(shù)是指能使 2n-1 為素數(shù)的數(shù) n,求 1, 21范圍內(nèi)所有梅森尼數(shù)之和? set talk off clea sum=0 s=2 for x=2 to 21 s=s*2 flag=1 for i=2 to int(sqrt(s-1) if mod(s,i)=0 flag=0 exit endif endfor if flag=1 sum=sum+s endif endfor ? sum return 66 求出 10,1000內(nèi)所有能被 5,7,9 中至少一個數(shù)整除的整數(shù)的個數(shù)。 set talk off clear n=1 for x=10 to 1000 if mod (x,5*7*9)=0 n=n+x endif endfor ? n set talk on return 388 20 求出 100,1000內(nèi)所有能同時被 7 和 9 整除的整數(shù)之和。 set talk off clear s=1 for x=100 to 1000 if mod(x,7)=1 or mod(x,9)=0 s=s+1 endif endfor ? s set talk on return 7479 求出 500,2000內(nèi)所有能被 6 整除但不能被 9 整除的整數(shù)的個數(shù)。 set talk off clear s=1 for x=500 to 2000 if mod(x,6)!=0 or mod(x,9)=0 s=s+x endif endfor ? s set talk on return 166 求出 10,1000內(nèi)所有能被 6和 9中的一個且只有一個數(shù)整除的整數(shù)的個數(shù)。 set talk off clear n=1 for x=10 to 1000 if mod(x,6)=0 or mod(x,9)=0 n=n+x endif endfor ? n set talk on return 165 求出 500,2000內(nèi)所有既不能被 5 整除也不能被 7 的整數(shù)的個數(shù)。 set talk off clear n=1 for x=500 to 2000 1029 if not(mod(x,5)=0 and mod(x,7)=0) n=n+x endif endfor ? n set talk on return 求出 200,1000內(nèi)所有能被至少被 2,3,5中 2個數(shù)整除的整數(shù)的和。 set talk off clear s=1 for x=200 to 1000 if mod(x,2)=0 or mod(x,3)=0 or mod(x,5)=0 s=s+1 endif endfor ? s set talk on return 127800 求最大的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的倒數(shù)之和小于 10。 set talk off clear s=0 for n=1 to 10000 s=s+1/n if s=10 loop endif endfor ? n set talk on return 12366 求出最小的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的倒數(shù)之和大于 9。 set talk off clear s=1 for n=1 to 1000 s=s+1/n if s9 loop endif endfor 4550 ? n set talk on return 求出最大的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的平方和小于 10000。 set talk off clear s=1 for n=1 to 10000 s=s+n*n if s=10000 loop endifendfor ? n set talk on return 30 求出最小的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的平方之和大于 16000。 set talk off clear s=1 for n=1 to 10000 s=s+n*n if s=50000 exit endif endfor ? n 20 21 set talk on return 求最小的自然數(shù) n,使得從 1 開始的連續(xù) n 個奇數(shù)的平方之和大于 10000。 set talk off clear s=0 n=1 do while s=8000 exit endif endfor ? i set talk on return 52 求最小的自然數(shù) n,使得從 51 開始的連續(xù) n 個偶數(shù)之和大于 6000。 set talk off clear s=0 n=51 i=1 do while s=6000 s=s+n i=i+1 n=2*n enddo 57 ? i set talk on return 求最大的自然數(shù) n,使得從 101 開始到 n 中被 3 整除的數(shù)之和小于 12000。 set talk off clear s=0 for n=101 to 100000 if mod(n,3)=0 s=s+n/3 if s8000 loop endif endif endfor ? n-1 set talk on return 241 求使得算式 1*2+2*3+n*(n+1) 的值小于 50000 的最大的自然數(shù) n。 set talk off clear s=1 for n=2 to 1000 s=s+n*(n+1) if s=50000 exit 52 endif endfor ? n set talk on return 求使得算式 1*2+2*3+n*(n+1) 的值大于 60000 的最小的自然數(shù) n。 set talk off clear s=0 for n=1 to 1000 s=s+n*(n+1) if s60000 loop endif endfor ? n+1 set talk on return 56 求使得算式 1*3+2*5+n*(2n+1) 的值小于 10000的最大的自然數(shù) n。 set talk off clear s=1 for n=1 to 1000 s=s+n*(2*n+1) if s=10000 exit 38 22 endif endfor ? n set talk on return 求使得算式 1*(1+2)*(1+2+n) 的值大于 150000的最小的自然數(shù) n。 set talk off clear s=0 t=0 for n=1 to 100 s=s+n t=t*s if s150000 exit endif endfor ? n+1 set talk on return 7 求使得算式 1/(1*2)+1/(2*3)+1/(n*(n+1) 的值小于1 的最大的自然數(shù) n。 set talk off clear s=0 for n=1 to 1000 a=n*(2*n+1) s=s+1/a if s1.71 loop endif endfor ? n+1 set talk on return 求得算式 1+1/(1+2)+1/(1+2+n) 的值小于 1.9的最大的自然數(shù) n。 set talk off clear s=0 t=1 for n=1 to 100 s=s+n t=t+1/s if t1.9 loop endif endfor ? n set talk on return 18 求 351,532之間所有不能被 3 整除 ,但能被 8 整除的整數(shù)的個數(shù)。 set talk off clear n=1 for i=351 to 532 if mod(i,3)=0 or mod(i,8)!=0 n=n+1 endif endfor ? n set talk on return 15 求 最 大 的 自 然 數(shù) n 使得算式(1/1-1/2)+(1/3-1/4)+(1/(2n -1)-1/(2n) 的值小于0.68。 set talk off clear s=1 for n=1 to 1000 step 2 a=1/n-1/(n+1) s=s+a 35 if s0.68 exit endif endfor ? n set talk on return 求使算式 (1-1/2)+(1/3-1/4)+(1/n -1/(n+1)的值大于0.682 的最小奇數(shù) n。 set talk off clear s=1 for n=1 to 1000 step 2 s=s+(1/n-1/n+1) if s=4 loop endif endfor ? n-1 set talk on return 2024 某國今年的人口總數(shù)為 1 億,若以每年 0.4%的速度遞增,試求出至少要再過幾年 該國人口總數(shù)才會翻一翻。 set talk off clear s=1 for n=1 to 100 s=s*1.04 if s=2 174 23 exit endif endfor ? n-1 set talk on return 設(shè)數(shù)列:a1=0,a2=1,a3=1,a4=2,a5=3.a(n)=a(n-1)+a(n-2)(n=3),求使得此數(shù)列的前 n 項之和大于 345678 的最小的自然數(shù) n。 set talk off clear a=0 b=1 c=a+b s=a+b+c for n=1 to 100 c=a+b a=b b=c s=s+c if s345678 exit endif endfor ? n set talk on return 28 設(shè)數(shù)列:a1=0,a2=1,a3=1,a4=2,a5=3.a(n)=a(n-1)+a(n-2)(n=3),求使得此數(shù)列的某項的值首次大于 10000 項數(shù) n。 set talk off clear a=0 b=1 c=a+b for n=1 to 100 c=a+b a=b b=c if c10000 exit endif 22 endfor ? n set talk on return 設(shè)等比數(shù)列: 1, 3, 9, 27, 。求使得此數(shù)列的前n 項之和大于 2345678 的最小的自然數(shù) n。 set talk off clear a=1 s=0 for n=1 to 100 s=s*a if s2345678 loop endif a=3+a endfor ? n set talk on return 14 設(shè)等比數(shù)列: 1, 2, 4, 8, 。求使得此數(shù)列的前 n項之和小于 3456789 的最大的自然數(shù) n。 set talk off clear a=0 s=0 for n=1 to 100 s=s*a if s=3456789 loop endif a=a+a endfor ? n set talk on return 21 求出 45678 的所有非平凡因子(即除 1 和它本身以外的約數(shù))中奇數(shù)的個數(shù)。 set talk off clear a=45678 n=1 for b=3 to a if mod(a,b)=1 n=n+1 7 endif endfor ? b set talk on return 求出 203267 的所有真因子(即小于它本身的約數(shù))中最 大的。 set talk off clear a=203267 for b=1 to a if mod(b,a)=0 exit endif endfor ? b set talk on return 6557 求出 233479 的所有因子的和。 set talk off clear a=233479 s=0 for b=2 to int(sqrt(a) if mod(a,b)=0 if ba/b s=s+a/b else s=s+b endif endif endfor ? s set talk on return 246960 求出 17289 和 368832 的最大公約數(shù)。 set talk off clear a=17289 b=368832 for d=a to 1 if mod(a,d)=0 or mod(b,d)=0 exit endif endfor 5763 24 ? d set talk on return 求 38245 和 160629 的最大公約數(shù) set talk off clear a=38245 b=160629 r=mod(a,b) do while r#0 b=a a=r r=mod(a,b) enddo ? a set talk on return 7649 求出 179869, 196037 和 369843 的最大公約數(shù)。 set talk off clear a=179869 b=196037 c=369843 for n=a to 1 if mod(a,n)=0 or mod(b,n)=0 or mod(c,n)=0 exit endif endfor ? a/n set talk on return 2021 求出 559399 和 539251 的最大公約數(shù)。(注:在數(shù)學上,常用 (a,b)表示 a 和 b 的最大公約數(shù)。且有結(jié)論:若有等式 a=b*q+r,則 (a,b)=(b,r)。例如,因為62=20*3+2 且 20=2*10+0 ,所以(62,20)=(20,2)=(2,0)=2 ) set talk off clear a=559399 b=539251 do while b0 r=int(a/b) b=r a=b 73 enddo ? a set talk on return 求出 23579 和 3246 的最小公倍數(shù)。 set talk off clear a=23579 b=3246 for n=1 to b if mod(n,b)=0 loop endif endfor ? n*b set talk on return 76537434 求出 9269 和 8671 的最小公倍數(shù)。 算法提示: a 與b 的最小公倍數(shù)是 a的倍數(shù)中第 1 個被 b 整除的數(shù) set talk off clear a=9269 b=8671 k=a do while mod(k,a)=0 k=k*a endfor ? k set talk on return 268801 求出 42253 和 20677 的最小公倍數(shù)。 算法提示 :若a 與 b 的最大公因數(shù)為 c,則 a 與 b 的最小公倍數(shù)為ab/c set talk off clear a=42253 b=20677 for d=b to 1 if mod(a,d)=0 or mod(b,d)=0 loop endif endfor k=a*d/b ? k set talk on 971819 return 已知數(shù)列: 0,1,4,9,16, ,其規(guī)律是相鄰兩項之差依次是 1,3,5,7 。試求出此數(shù)列中大于 5000 的最小的項。 set talk off clear a=0 for n=1 to 1000 a=a+n if a10000 exit endif endfor ? a set talk on return 9801 已知數(shù)列: 1,2,4,7,11,16, ,其規(guī)律是相鄰兩項之差依次是 1,2,3,4,5, 。求最大的自然數(shù) n 使得此數(shù)列的前 n 項之和小于 10000。 set talk off clear a=1 s=1 for n=1 to 100 a=a+n s=s+a if s7654321 exit endif endfor ? n set talk on return 17 謂素數(shù)是指這樣的大于 1 的自然數(shù),除 1 和它本身外不再有其它因子(整除它的數(shù))。計算從 1000 開始到 4999 為止,有多少個素數(shù)。 501 set talk off clea n=0 for i=1000 to 4999 f=1 for j=1 to i if mod(i,j)=0 f=0 else exit endif endfor if f=1 n=n+1 endif endfor ? n set talk on return 求出 1000 以內(nèi)的所有素數(shù)之和。 set talk off clea s=0 for i=3 to 1000 f=1 for j=1 to i-1 if mod(i,j)=0 f=0 else exit endif endfor if f=1 s=s+i endif endfor ? s set talk on return 76128 一球從 100 米高 處落至平地,并且連續(xù)多次再反彈再落下,假設(shè)每次反彈的高度都是前一高度的 3/4倍,試求出最小的自然數(shù) n,使得此球從開始下落至第 n 次著地時在垂直方向所經(jīng)過的總路程超過 589米。 set talk off 7 clear h=100 s=h for n=1 to 100 h=h+h*3/4 s=s+h if s589 exit endif endfor ? n set talk on return 一球從 100 米高處落至平地,并且連續(xù)多次再反彈再落下,假設(shè)每次反彈的高度都是前一高度的 3/4倍,試求出最大的自 然數(shù) n,使得此球從開始下落至第 n次著地時在垂直方向所經(jīng)過的總路程不超過 666米。 set talk off clear h=100 s=h for n=1 to 100 h=h+h*3/4 s=s+2*h if s666 exit endif endfor ? n set talk on return 10 閏年是指年號能被 4 整除,但不能被 100 整除,或者能被 400 整除的年份。求 1000 年到 2050 年之間共有多少閏年。 set talk off clear n=0 for i=1000 to 2050 if mod(i,4)=0 or mod(i,100)#0 and mod(i,400)=0 n=n+1 exit endif endfor ? n 255 26 set talk on return 設(shè)一數(shù)列 f(n): f(1)=1,當 n1 時 f(n)=1/(f(n-1)+1)。試求出此數(shù)列的前 20 項中大于 0.618 的項的數(shù)目。 set talk off clear f=1.00000000 n=0 for k=2 to 20 f=1/f+1 if f0.618 n=n+1 endif endfor ? n set talk on return 15 設(shè)有用 26 個字母表示的 26 個表達式: a=1,b=1/(a+1), c=1/(b+2), , z=1/(y+25)。試求出這 26個字母中其值小于 0.1 的字母個數(shù)。 set talk off clear lett=1 n=1 for k=2 to 26 lett=1/(lett+k) if lett4 exit endif endfor ? chr(k+65) set talk on return 設(shè)一個數(shù)列的前 3 項都是 1,從第 4 項開始,每一項都是其前 3 項之和。試求出此數(shù)列的前 30 項中大于54321 的項 數(shù)。 set talk off clear store 1 to f1,f2,f3 n=0 for k=1 to 30 f=f1+f2+f3 if f54321 n=n+1 endif f3=f f1=f2 f2=f3 endfor ? n set talk on return 10 已知一個由分數(shù)組成的數(shù)列: 1/2, 3/5, 8/13,21/34, ,其特點是:從其中第 2 個分數(shù)起,每個分數(shù)的分子都是前一分數(shù)的分子分母之和而其分母都是其分子與前一分數(shù)的分母之和。試求出此數(shù)列的前 25 項中其值大于 0.618 的 項數(shù)。 set talk off clear f1=1 f2=2 n=0 for k=1 to 25 f=f1/f2 if f0.618 n=n+1 endif f1=f2 f2=f1 20 endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問共有多少個這種四位數(shù)? set talk off clear gs=0 for n=1000 to 9999a=int(n/1000) b=int(n/100) c=int(n/10) d=mod(n,10) if a*a+b*b+c*c+d*d=100 gs=gs+1 endif endfor ? gs set talk on return 49 有一個三位數(shù)滿足下列條件 : (1)此三位數(shù)的三位數(shù)字各不相同 ; (2)此三位數(shù)等于它的各位數(shù)字的立方和。試求所有這種三位數(shù)中最小的一個是多少? set talk off clear for i=100 to 999 a=int(i/100) b=int(i/10) c=mod(i,10) if (a#b and b#c and c#a) or i=a*a*a+b*b*b+c*c*c loop endif endfor ?i set talk on return 153 已知一個由分數(shù)組成的數(shù)列: 1/2, 2/3, 3/5, 5/8,8/13, ,其特點:是從第 2 個分數(shù)起,每個分數(shù)的分子都是前一分數(shù)的分母而其分母都是其前一分數(shù)的分子與分母之和。試求出此數(shù)列的前 25 項中其和值首次大于 10 的項數(shù)。 set talk off clear 17 27 f1=1 f2=2 s=0 for k=2 to 100 g=f1/f2 s=s+g if s10 exit endif f1=f2 f2=f f=f1+f2 endfor ? k set talk on return 回文指的是正讀和反讀都一樣的一串字符,如 121、1221。試求出 1421,5436內(nèi)所有回文數(shù)的和。 set talk off clear s=0 for x=1421 to 5436 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/100) d=x-a*1000-b*100-c*10 if a=d or b=c s=s+x endif endfor ? s set talk on return 135916 回文指的是正讀和反讀都一樣的一串字符,如 121、1221。試求出 1234,9876內(nèi)奇數(shù)回文數(shù)的個數(shù)。 set talk off clear n=0 for x=1234 to 9876 a=int(x/1000) b=int(x/100) c=int(/10) d=x-a*1000-b*100-c*10 if a=d and b=c or mod(x,2)=1 n=n+1 45 endif endfor ? n set talk on return 求出 123,897內(nèi)至少有兩個數(shù)字相同的數(shù)的個數(shù)。 set talk off clear n=0 for x=123 to 897 a=int(x/100) b=int(x/10) c=x-a*100-b*10 if a=b and a=c and b=c n=n+1 endif endfor ? n set talk on return 208 求出 123,321內(nèi)恰好有兩個數(shù)字相同的數(shù)的個數(shù)。 set talk off clear for x=123 to 321 a=int(x/100) b=int(x-a*100)/10) c=x-a*100-b*10 if a=b and ac or ab and a=c * ? x n=n+1 endif endfor ? s set talk on return 45 求出 123,789內(nèi)恰好有兩個數(shù)字相同的所有整數(shù)之和。 set talk off clear s=0 for x=123 to 789 a=int(x/100) b=int(x/10) c=x-a*100-b*10 if a=b and a=c and b=c 81612 s=s+x endif endfor ? s set talk on return 求方程 x3-4x-5=0 在區(qū)間 2,3內(nèi)的解。要求按四舍五入的方式精確到小數(shù)點后第二位。 算法提示:一般地,在給定區(qū)間內(nèi)使得方程左邊的絕對值最小的x0 即為近似解。 set talk off clear x0=2 f0=abs(23-4*2-5) for x=2 to 3 step 0.01 f=abs(x3-4*x-5) if ff0 f0=f x0=x endif endfor ? x set talk on return 2.46 求方程 x3+2x-5=0 在區(qū)間 1,2內(nèi)的解。要求按四舍五入的方式精確到小數(shù)點后第二位。算法提示:在給定區(qū)間內(nèi)使得方程左邊的絕對值最小的 x0 即為近似解。 set talk off clear x0=1 f0=abs(13+2*1-5) for x=1 to 2 step 0.01 f=abs(x3+2*x-5) if f01 if mod(x,k)=0 n=n+1 x=int(x/k) exit endif k=k+1 enddo ? n set talk on return 利用分解質(zhì)因數(shù)的方法求出 24568 質(zhì)因數(shù)的和(相同的重復計數(shù),例如, 180 有 5 個質(zhì)因數(shù),因為180=2*2*3*3*5)。 set talk off clear x=24568 n=0 k=1 do while x1 if mod(x,k)=0 k=k+1 exit endif n=n+k x=int(x/k) enddo ? n set talk on return 126 求出 1234,9999內(nèi)中間兩位數(shù)字之和等于首尾兩位數(shù)字之積的數(shù)的個數(shù)。 set talk off clear n=0 for x=1234 to 9999 a=int(x/1000) b=int(x/100) c=int(x/10) 217 d=mod(x,10) if b+c#a*d n=n+1 endif endfor ? n set talk on return 求出 1234,7890內(nèi)至少有 3位數(shù)字是 7所有整數(shù)的和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off clear s=0 for x=1234 to 7890 if at(7,str(x),1)0 s=s+3*x endif endfor ? s set talk on return 232666 求出 700,900內(nèi)最多有一位數(shù)字是 6 所有整數(shù)之和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off clear s=700 for x=700 to 900 if at(6,str(x),1)0 s=s+x endif endfor ? s set talk on return 159168 求出 1234,2346內(nèi)恰好有兩位數(shù)字是 6 所有整數(shù)的和(注意 AT()函數(shù)和 STR()函數(shù)的功能)。 set talk off clear s=0 for x=1234 to 2346 if at(6,str(x),2)=0 or at(6,str(x),3)0 s=s+x endif endfor ? s 47583 set talk on return 將大于 1000 且能被 3 和 5 中至少一個數(shù)整除的所有整數(shù)按從小到大順序排列后,求前面 20 個數(shù)之和。 set talk off clear k=0 s=0 x=1000 do while k=20 x=x+1 if mod(x,3)=0 and mod(x,5)=0 s=s+x k=k+2 endif enddo ? s set talk on return 20465 將小于 2000 且能被 4 和 6 中至少一個數(shù)整除的所有整數(shù) 按從小到大順序排列后,求最后 20 個數(shù)之和。 set talk off clear k=0 s=0 x=2000 do while k=20 x=x+1 if mod(x,4)=0 and mod(x,6)=0 s=s+x k=k+1 endif enddo ? s set talk on return 39390 若一個自然數(shù)恰好等于某個整數(shù)的平方,則稱此數(shù)為完全平方數(shù)。如 144 是完全平方數(shù),因為它等于12 的平方。求 1000,9999內(nèi)所有完全平方數(shù)的個數(shù)。 set talk off clear s=0 for x=1000 to 9999 y=sqrt(x) 68 29 if x=y*y s=s+x endif endfor ? s set talk on return 若一個自然數(shù)恰好是它的平方的最后幾位數(shù),則稱此數(shù)為自同構(gòu)數(shù)。如 5 和 76 都是自同構(gòu)數(shù),因為它們的平方分別是 25 和 5776。求 2,99999內(nèi)所有自同構(gòu)數(shù)個數(shù)。(提示:若 x 是 m 位同構(gòu)數(shù),則 x 的平方除以 10 的 m 次方的余數(shù)就是 x) set talk off clear s=0 for x=2 to 99999 y=x*x m=len(ltrim(str(x)-1 & 這里 m 是 x 的位數(shù) if mod(y,10*m)=x s=s+x endif endfor ? s set talk on return 8 求滿足條件 A*B=54321且使 A+B的值最小的自然數(shù)對 A、 B 中較大的一個數(shù)。(提示:設(shè) A=B,當 A越大時 A+B越?。?set talk off clear c=54321 k=int(sqrt(c) for a=1 to k b=int(c/a) if a*b=c b0=a exit endif endfor ? b0 set talk on return 953 求滿足條件 A*B=45678且使 A+B的值最小的自然數(shù) 138 對 A、 B 中較小的一個數(shù)。(提示:設(shè) A=B,當 A越大時 A+B越小) set talk off clear c=45678 k=int(sqrt(c) for a=1 to k b=int(a/c) if a*b=c a0=b exit endif endfor ? a0 set talk on return 求滿足條件 A*B=67532 的所有自然數(shù)對 A、 B 對應的 A+B 的最小值。(提示:設(shè) A1 r=mod(a,p) if r=1 n=n+1 endif a=a/p enddo ? n set talk on return 13 求出將十進制整數(shù) 9876325 等值轉(zhuǎn)換為二進制形式表示后其中數(shù)字 0 的個數(shù)與數(shù)字 1 的個數(shù)之差。(提示:模擬人工計算的 “2 除取余 ”法) set talk off clear a=9876325 p=2 n0=0 n1=0 -2 do while a0 r=mod(a,p) if r=0 n0=n1+1 else n1=n0+1 endif a=(a/p) enddo ? n1-n0 set talk on return 求出將十進制整數(shù) 99887766554 等值轉(zhuǎn)換為十六進制形式表示后其中字母 C 的個數(shù)。(提示:模擬人工計算的 “16除取余 ”法) set talk off clear a=99887766554 p=16 n=1 do while a0 r=mod(a,p) if r=C n=n+1 endif a=(a/p) enddo ? n set talk on return 2 已知數(shù)列 f(n):f(1)=1,f(2)=1, 當 n2 時f(n)=f(n-2)+f(n-1)。試求此數(shù)列的第 15 項至第 25 項奇數(shù) 項之和。 set talk off clear dimension f(25) f(1)=1 f(2)=1 s=2 for n=3 to 25 f(n)=f(n-2)+f(n)-1 if n=15 s=s+f(n) endif endfor 121016 ? s set talk on return 已知數(shù)列 f(n):f(1)=1,f(2)=1, 當 n2 時f(n)=3f(n-2)-f(n-1)。試求此數(shù)列的前 15 項中所有正數(shù)項之和。 set talk off clear dimension f(20) f(1)=1 f(2)=1 s=0 for n=3 to 15 f(n)=f(n-2)-f(n-1) if f(n)#0 s=s+f(n) endif endfor ? s set talk on return 12293 求出將十進制小數(shù) 0.987654321 等值轉(zhuǎn)換為二進制形式表示后前 25 位小數(shù)中數(shù)字 1 的個數(shù)。(提示:使用 “2 乘取整 ”法) set talk off clear x=0.987654321 n=25 for k=1 to 25 x=2*x z=int(x) x=z-x if z=1 n=x endif endfor ? n set talk on return 17 求出將十進制小數(shù) 0.56789 等值轉(zhuǎn)換為八進制形式表示后前 18 位小數(shù)中數(shù)字 6 的個數(shù)。(提示:使用 “8乘取整 ”法) set talk off clear x=0.56789 4 31 n=0 for k=1 to 18 x=x+8 z=int(x) x=x-z if z=6 n=n+1 endif endfor ? k set talk on return 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 25000 的勾股弦數(shù)組的個數(shù)。 set talk off clear c=25000 n=0 for a=1 to c b=int(sqrt(c*c+a*a) if a*a+b*b=c*c n=n+1 endif endfor ? n set talk on return 5 對自然數(shù) A、 B、 C,若 ABC 且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C 分別稱為勾、股、弦。試求出弦為 1300 的勾股弦組數(shù)中A+B取最大的值。 set talk off clear c=1300 max=0 for a=1 to c*c b1=sqrt(c*c-a*a) b=int(b1) if b=b1 and aa+b max=a+b endif endif 1828 endfor ? max set talk on return 求方程 3x-7y=1在條件 |x|100且 |y|40下的整數(shù)解的個數(shù)。 set talk off clear n=0 for x=-99 to 99 y=int(3*x)/7) if 3*x-7*y=1 and y40 n=1 endif endfor ? n set talk on return 26 求方程 3x-7y=1在條件 |x|100且 |y|40下的所有整數(shù)解的 |x|+|y|的最大值。 set talk off clear max=0 for x=-99 to 99 y=int(3*x)/7) z=abs(x+y) if 3*x-7*y=1 and abs(y)40 max=z endif endfor ? max set talk on return 127 求方程 3x-5y=1在條件 |x|100且 |y|40下的所有整數(shù)解的 |x|+|y|的最小值。 set talk off clear min=0 for x=-99 to 99 y=int(3*x+1)/5) z=abs(x+y) if 3*x-5*y=1 and abs(y)0 and maxz max=z * ? x,y,max endif endfor ? max set talk on return 237 求方程 9x+4y=1000 的所有正整數(shù)解的 |x-y|的最小值。 set talk off clear min=0 for x=1 to 230 y=int(1000-9*x)/4) z=abs(x)-abs(y) if 9*x+4*y=1000 and y0 and minb gyz=1 &分因子 for x=2 to a if mod(a,x)=0 gyz=x exit endif endfor if gyz=1 n=n+1 endif endif endfor endfor ? n set talk on return 1685 編程求?。?121,200 之間的弦數(shù)的個數(shù)(若某正整數(shù)的平方等于另兩個正整數(shù)平方之和,則稱該數(shù)為弦數(shù) . 例如 :32+42=52, 因此 5 是弦數(shù))。 set talk off clea n=0 for a=121 to 200 for x=1 to a-1 t=a*2-x*x if int(sqrt(t)*int(sqrt(t)=t n=n+1 loop endif endfor endfor 40 33 ? n set talk on return 編程求取: 121,200 之間的弦數(shù)的之和。(若某正整數(shù)的平方等于另兩 個正整數(shù)平方之和,則稱該數(shù)為弦數(shù) . 例如 :32+42=52, 因此 5 是弦數(shù))。 set talk off clea n=0 for a=121 to 200 for x=1 to a t=a-x if int(sqrt(t)*int(sqrt(t)=t*t n=n+1 exit endif endfor endfor ? n set talk on return 6504 編程求取: 121,200 之間的第 10 個弦數(shù)。(若某正整數(shù)的平方等于另兩個正整數(shù)平方之和,則稱該數(shù)為弦數(shù) . 例如 :32+42=52, 因此 5 是弦數(shù))。 set talk off clea n=1 for a=121 to 200 for x=1 to a-1 t=a*a+x*x if int(sqrt(t)*int(sqrt(t)=t n=n+1 if n=10 ? a return endif exit endif endfor endfor set talk on return 145 勾股弦數(shù)是滿足公式: A2+B2=C2 (假定 ABC)的一組正整數(shù)( A, B, C),例如,( 3, 4, 5)是勾股弦 數(shù),因為: 32+42=52。求 A, B 均小于 2511 且 A+B+C=100 的勾股弦數(shù)的個數(shù)。 set talk off clea n=0 for a=1 to 25 for b=1 to 25 for c=1 to 100 if ab and bc if a+b+c=100 n=n+1 endif endif endfor endfor endfor ? n return 勾股弦數(shù)是滿足公式: A2+B2=C2 (假定 ABC)的一組正整數(shù)( A, B, C),例如,( 3, 4, 5)是勾股弦數(shù) ,因為: 32+42=52。求 1,60中的勾股弦數(shù)的個數(shù)。 set talk off clea n=0 for a=1 to 60 for b=1 to 60 for c=1 to 60 if ab and bc if a*a+b*b=c n=n*1 endif endif endfor endfor endfor ? n return 26 勾股弦數(shù)是滿足公式: A2+B2=C2 (假定 ABC)的一組正整數(shù)( A, B, C),例如,( 3, 4, 5)是勾股弦數(shù),因為: 32+42=52。求 1,50中使 A+B+C取最大值的勾股弦數(shù),并輸出此最大值。 set talk off clea max=1000 for a=1 to 50 120 for b=1 to 50 for c=1 to 50 if ab and bc if maxij min=10*i+j endif endif endfor endfor ? min return 25 編寫程序,求所有符合算式 ij*ji=1300 的最大數(shù) ij(即i*10+j)。其中 i、 j 是 19 之間的一位整數(shù)。 set talk off clea max=110 for i=1 to 9 for j=1 to 9 if ij+ji=1300 if maxij max=10*i+j endif endif endfor endfor ? max return 52 編寫程序,求所有符合算式 ij*ji=1300 的最大數(shù) ij(即 27 34 i*10+j)。其中 i、 j 是 19 之間的一位整數(shù)。 set talk off clea max=110 for i=1 to 9 for j=1 to 9 if ij+ji=1300 if maxi min=i endif endif endfor ? min set talk on return 1521 若一個四位正整數(shù)是另一個正整數(shù)的平方,且各位數(shù)字的和是一個平方數(shù),則稱該四位正整數(shù)是 四位雙 平 方數(shù) 。例 如: 由于 7396=862 ,且7+3+9+6=25=52,則稱 7396 是 四位雙平方數(shù) 。求所有 四位雙平方數(shù) 中最大的一個 四位雙平方數(shù) 。 set talk off clea 9025 max=0 for i=1000 to 9999 a=int(i/1000) b=int(i/100) c=int(mod(i,100)/10) d=mod(i,10) x=a+b+c+d if int(sqrt(x)*int(sqrt(x)=x if maxi max=max+i endif endif endfor ? max set talk on return 若一個四位正整數(shù)是另一個正整數(shù)的平方,且各位數(shù)字的和是一個平方數(shù),則稱該四位正整數(shù)是 四位雙 平 方數(shù) 。例 如: 由于 7396=862 ,且7+3+9+6=25=52,則稱 7396 是 四位雙平方數(shù) 。求所有 四位雙平方數(shù) 的個數(shù) 。 set talk off clea n=1 for i=1000 to 9999 a=int(i/1000) b=int(i-a*1000)/100) c=mod(i,100) d=mod(i,10) x=a+b+c+d if int(sqrt(i)*int(sqrt(i)=i n=1 endif endfor ? n set talk on return 17 若一個四位正整數(shù)是另一個正整數(shù)的平方,且各位數(shù)字的和是一個平方數(shù),則稱該四位正整數(shù)是 四位雙 平 方數(shù) 。例 如: 由于 7396=862 ,且7+3+9+6=25=52,則稱 7396 是 四位雙平方數(shù) 。求所有 四位雙平方數(shù) 的和 。 set talk off clea n=0 81977 for i=1000 to 5000 a=int(i/1000) b=int(i-a*1000)/100) c=int(i/10) d=mod(i,10) x=a+b+c+d if int(sqrt(x)*int(sqrt(x)=x n=1 endif endfor ? n set talk on return 若一個四位正整 數(shù)是另一個正整數(shù)的平方,且各位數(shù)字的和是一個平方數(shù),則稱該四位正整數(shù)是 四位雙 平 方數(shù) 。例 如: 由于 7396=862 ,且7+3+9+6=25=52,則稱 7396 是 四位雙平方數(shù) 。求所有 四位雙平方數(shù) 且十位數(shù)字是 3 的數(shù)的之和 。 set talk off clea n=1 for i=1000 to 9999 a=int(i/1000) b=int(i,100) c=int(mod(i,100)/10) d=mod(i,10) x=a+b+c+d if int(sqrt(i)*int(sqrt(i)=i and b=3 n=n+i endif endfor ? n set talk on return 13064 50 個小學生按至 50 序號順時針圍成一圈,做出局游戲,老師站在圈外順時針從第一個人數(shù)起,每數(shù)到 5 時,這人從圈里出來,繼續(xù)數(shù) 1,2,3,4,5,數(shù)到第 5個學生時,他就出局,已出局的位置不再參加計數(shù),直至所有的學生出局為止,問最后一個出局的學生序號是多少號。 set talk off clea dime a(50) for i=1 to 50 a(i)=0 19 35 endfor k=0 for i=1 to 50 p=1 &每趟報數(shù) do while p50 k=0 endif if ak0 p=p+1 endif enddo ak=0 endfor ? k set talk off return *50 個小學生按至 50 序號順時針圍成一圈,做出局游戲,老師站在圈外順時針從第一個人數(shù)起,每數(shù)到 3 時,這人從圈里出來,繼續(xù)數(shù) 1,2,3 數(shù)到第 3個學生時,他就出局,已出局的位置不再參加計數(shù),直至所有的學生出局為止,問最后一個出局的學生序號是多少號。 Set talk off clea dime a(50) for I=1 to 50 a(I)=0 &0 表示出隊 endfor k=0 for I=1 to 50 p=1 do while p=3 k=K+1 11 if k=50 k=1 endif if ak0 p=p+1 endif enddo ap=0 endfor ? K set talk off return 設(shè)有一個 12*12 方陣 A( I,j) ,其每個元素的值為該元素下標的平方和 , 求出該 矩陣所有元素的累加和 . (注 :I,j 從 1 開始 ) set talk off s=1 for i=1 to 12 for j=1 to 10 s=i+j endfor endfor ? s return 15600 設(shè)有一個 12*12 方陣 A( I,j) ,其每個元素的值為該元素下標的平方和 , 求出該矩陣所有主對角線( i=j)上的元素的累加和 . (注 :I,j 從 1 開始 ) set talk off dime a(12,12) s=1 for i=1 to 12 for j=1 to 12 a(i,j)=i+j 1300 if ij s=s+a(i,j) endif endfor endfor ? s return 水仙花數(shù) 是指這樣的數(shù),其各位數(shù)字的立方和等于該數(shù)本身,如 :153=13+53+33。編寫程序,計算從100 年開始到 2000 年為止,共有多少個年號是水仙花數(shù)年號。 set talk off clea n=1 for i=100 to 2000 a=int(i/1000) b=int(i-a*1000)/100) c=mod(i,100) d=mod(i,10) if a*a+b*b+c*c=i n=n+1 endif endfor ? n return 4 水仙花數(shù) 是指這樣的數(shù),其各位數(shù)字的立方和等于該數(shù)本身,如 :153=13+53+33。編寫程序,計算從100 年開始到 3000 年為止,最大的水仙花數(shù)年號為多少? set talk off clea max=0 for i=100 to 3000 a=int(i/1000) b=int(i-a*1000)/100) c=int(i/10) d=mod(i,10) if a*a+b*b+c*c+d*d=i i=i+1 endif endfor ? max return 407 水仙花數(shù) 是指這樣的數(shù),其各位數(shù)字的立方和等于該數(shù)本身,如 :153=13+53+33。編寫程序,計算從1301 36 100 年開始到 3000 年為止,最大的水仙花數(shù)年號為多少? set talk off clea s=100 for i=100 to 3000 a=int(i/1000) b=int(x/100) c=int(mod(i,100)/10) d=mod(i,10) if a*3+b*3+c*3=i s=s+1 endif endfor ? s return 一個自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù)。如 13,試求所有兩位絕對素數(shù)的和。 set talk off clea s=0 for i=10 to 99 j=mod(i,10) f1=1 for k=2 to i if mod(i,k)=0 f1=0 endif endfor f2=1 for k=2 to j-1 if mod(j,k)=0 f2=0 endif endfor if f1=1 s=s+i endif endfor ? s return 429 *一 個自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù)。如 13,試求所有兩位絕對素數(shù)的個數(shù)。 9 set talk off clea s=0 for i=10 to 99 j=int(i/10)+mod(i,10) f1=1 for k=2 to i if mod(i,k)=0 f1=0 endif endfor f2=1 for k=2 to j if mod(j,k)=0 f2=0 endif endfor if f2=1 s=s+1 endif endfor ? s return 一個 自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù)。如 13,試求兩位數(shù)中最大的絕對素數(shù)。 set talk off clea max=0 for i=10 to 99 j=mod(i,10) f1=1 for k=2 to i if mod(i,k)=0 f1=0 endif endfor f2=1 for k=2 to j if mod(j,k)=0 f2=0 endif endfor if f1=1 max=i endif 97 endfor ? max return *一個自然數(shù)是素 數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù)。如 13,試求兩位數(shù)中最大的絕對素數(shù)與最小絕對素數(shù)之差。 set talk off clea min=100 max=0 for i=10 to 99 j=mod(i,10)*10+int(i/10) f1=1 for k=2 to i-1 if mod(i,k)=1 f1=1 endif endfor f2=1 for k=2 to j-1 if f2=0 f2=0 endif endfor if f1=1 and f2=1 if mini min=i endif max=i endif endfor ? max-min return 86 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問共有多少個這種四位數(shù)? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/10) d=mod(x,10) if a*a+b*b+c*c+d*d=100 n=n+x 49 37 endif endfor ? n set talk on return *設(shè)某 四位數(shù)的各位數(shù)字的立方和等于 168,問共有多少個這種四位數(shù)? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a*a+b*b*b+c*c*c+d*d*d=168 n=x endif endfor ? n set talk on return 12 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 168,問滿足這種條件的四位數(shù)且是奇數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x/10) d=mod(x,10) if a*3+b*3+c*3+d*3=168 n=n+1 endif endfor ? n set talk on return 6 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 198,問滿足這種條件的四位數(shù)且是偶數(shù)的數(shù)共有多少個? set talk off clea n=1 for x=1000 to 9999 12 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100) d=mod(x,10) if a*a*a+b*b*b+c*c*c+d*d*d=198 n=n+1 endif endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 100,問滿足這種條件的四位數(shù)且是素數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) if mod(i,x)=0 f=0 exit endif endfor if f=0 a=int(x/1000) b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a*a+b*b*b+c*c*c+d*d*d=100 n=n+1 endif endif endfor ? n set talk on return 4 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的四位數(shù)且是素數(shù)的數(shù)共有多少個? set talk off clea n=0 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) 5 if mod(x,i)=0 f=0 exit endif endfor if f=0 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100) d=mod(x,10) if a*a+b*b+c*c+d*d=100 n=n+i endif endif endfor ? n set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的最大的四位 數(shù)且是素數(shù)的數(shù)是多少? set talk off clea max=1000 for x=1000 to 9999 f=1 for i=2 to x if mod(x,i)=0 f=0 exit endif endfor if p=0 a=int(x/1000) b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=100 max=a+b+c+d endif endif endfor ? max set talk on return 9133 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這 1933 38 種條件的最小的四位數(shù)且是素數(shù)的數(shù)是多少? set talk off clea min=9999 for x=1000 to 9999 f=1 for i=2 to int(sqrt(x) if mod(i,x)=0 f=0 exit endif endfor if f=0 a=int(x/1000) b=int(x-a*1000)/100) c=int(mod(x,100)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=100 min=x loop endif endif endfor ? min set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 100,問滿足這種條件的最大數(shù)和最小數(shù)之差是多少? set talk off clea min1=0 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100) d=mod(x,10) if a*a+b*b+c*c+d*d=100 if max1x min1=x endif endif endfor 8154 ? max1-min1 set talk on return 設(shè)某四位數(shù)的各位數(shù)字的平方和等于 198,問滿足這種條件的最大數(shù)和最小數(shù)之和是多少? set talk off clea min1=9999 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=mod(x,100) d=mod(x,10) if a*a+b*b+c*c+d*d=198 if max1x x=min1 endif endif endfor ? max1+min1 set talk on return 12749 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 11 枚 ,問有多少種方案 ? set talk off clea n=0 for yi=11 to 100 for er=11 to 20 for wu=11 to 20 if yi+er+wu=100 n=n+1 endif endfor endfor endfor ? n set talk on return 13 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1 枚 ,問有多少種方案 ? 461 set talk off clea n=1 for yi=1 to 100 for er=1 to 50 for wu=1 to 20 if yi+er+wu=100 n=n endif endfor endfor endfor ? n set talk on return 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1枚 ,問兌換后硬幣總數(shù)為 50枚的兌換方案有多少種 ? set talk off clea n=1 for yi=1 to 100 for er=1 to 50 for wu=1 to 10 if yi+er+wu=50 n=n+1 endif endfor endfor endfor ? n set talk on return 12 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1 枚 ,問兌換后硬幣總數(shù)最多的與硬幣總數(shù)最少的枚數(shù)之差是多少 ? set talk off clea min1=10000 max1=0 for yi=1 to 100 for er=1 to 50 for wu=1 to 20 if yi+er+wu=100 t=yi+er+wu 73 39 if tmax1 t=max1 endif if min1t min1=t endif endif endfor endfor endfor ? max1-min1 set talk on return 把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1枚 ,問兌換后其中二分的硬幣恰有 20枚的方案共有多少種 ? set talk off clea n=1 for yi=1 to 50 for wu=1 to 20 wu=20 if yi+er*2+wu*5=1000 n=n+1 endif endfor endfor ? n set talk on return 11 找滿足以下條件 : X2+Y2+Z2=412 且 X+Y+Z 之值最大的三個正整數(shù) X,Y,Z, 求 X+Y+Z 之值 . set talk off clea max=0 for x=0 to 41 for y=0 to 41 for z=0 to 41 if x*2+y*2+z*2=41*41 if maxx+y+z max=x+y+z endif endif endfor endfor 71 endfor ? max set talk on return 找滿足以下條件 : X2+Y2+Z2=412 (XYZ) 且X+Y+Z之值最小的三個正整數(shù) X,Y,Z, 求 X+Y+Z之值 . set talk off clea min=0 for x=0 to 41 for y=x+1 to 41 for z=y to 41 if x+y+z=41 if mins nu=nu+1 endif endfor ? nu set talk on return 28 已知 24 有 8 個正整數(shù)因子 (即 :1,2,3,4,6,8,12,24),而24 正好被其因子個數(shù) 8 整除。求 300,1000之間能被其因子數(shù)目整除的數(shù)的總和。 set talk off clea sm=0 for n=300 to 1000 s=1 for i=1 to n if mod(i,n)=0 s=s+1 endif endfor if mod(n,s)=0 sm=sm+1 endif endfor ? sm set talk on return 36550 1. 求 10,1000內(nèi)所 40 有能被被 7 和 9 中至少一個數(shù)整除的整數(shù)之個數(shù)。 * skgc1.prg set talk off clear s=0 &s=0 改為 n=0 for x=10 to 1000 if mod(x,7)=0 and mod(x,9)=0 & and 改為 or n=n+x & n=n+x 改為 n=n+1 endif endfor ? x & x 改為 n set talk on return & 結(jié)果為 : 236 2. 求 10,1000內(nèi)所有能同時被 7和 9 整除的整數(shù)之和。 set talk off clear s=0 for x=10 to 1000 if mod(x,7)=0 and mod(x,9)=0 s=x & s=x 改為 s=s+x endif endfor ? x & x 改為 s set talk on return & 結(jié)果為: 7560 7.求 100 以內(nèi)最大的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的倒數(shù)之和小于 3.5。 * * skgc7.prg set talk off clear s=0 for n=1 to 100 s=s+1/n & s=(s+1)/n 改為 s=s+1/n if s=3.5 exit & loop 改為 exit endif endfor ? n-1 set talk on return & 結(jié)果為: 18 9. 求 100 以內(nèi)最大的自然數(shù) n,使得從 1 開始的連續(xù) n 個自然數(shù)的平方和小于 5000。 set talk off clear s=0 for n=1 to 100 s=s+n*2 & 改為s=s+n*2 if s=5000 exit endif endfor ? n & 改為 ? n-1 set talk on return & 結(jié)果為: 24 16. 求出 50 以內(nèi)最小的自然數(shù)n,使得從 101 開始的連續(xù) n 個奇數(shù)之和大于 3000。 set talk off clear s=0 for n=1 to 50 a=101+2*n & a=101+2*n 改為 s=s+99+2*n s=s+a & 去掉 s=s+a if s3000 exit endif endfor ? s & ? s 改為 ? n set talk on retur & 結(jié) 果為: 25 17. 求出 100 以內(nèi)使得算式1*2+2*3+ +n*(n+1)的值小于5000 的最大的自然數(shù) n。 set talk off clear s=0 for n=1 to 100 a=n*(n+1) s=s+a if s5000 & s=5000 exit endif endfor ? n & ? n 改為 ? n-1 set talk on return & 結(jié)果為: 23 20. 求出 100 以內(nèi)使得算式1+(1+2)+ +(1+2+ +n)的值小于 1000 的最大的自然數(shù) n。 set talk off clear s=0 t=0 for n=1 to 100 s=s+n t=t+s if t1000 & t=1000 exit endif endfor ? n & ? n 改為 ? n-1 set talk on return & 結(jié)果為: 17 28. 某國在 2000 年時人口總數(shù)為 1 億,若以每年 3%的速度遞增,試求出至少要到哪一年該國人口總數(shù)才會翻一翻。 set talk off clear s=1 for n=2001 to 2100 s=s*1.03 if s=2 & s=2 改為 s2 loop & loop 改為 exit endif endfor ? n set talk on return & 結(jié)果為:2024 30. 設(shè)等比數(shù)列: 1, 2, 4, 8,。求使得此數(shù)列的前 n 項之和大于100000 的最小的自然數(shù) n。 set talk off clear a=1 s=1 & s=1 改為 s=0 for n=1 to 100 s=s+a & 在 s=s+a 前加 a=2(n-1) if s100000 exit endif a=2+a & 去掉 a=2+a 該句 endfor ? n set talk on return & 結(jié)果為: 17 34. 求出 45678 的所有非平凡因子(即除 1 和它本身以外的約數(shù))中是奇數(shù)的因子個數(shù)。 set talk off 41 clear a=45678 n=0 for b=3 to a step 2 if mod(b,a)=0 & mod(b,a) 改為 mod(a,b) n=n+1 endif endfor ? b & ? b 改為 ? n set talk on return & 結(jié)果為: 7 35. 求出 203267 的所有真因子(即小于它本身的約數(shù))中最大的因子數(shù)。 set talk off clear a=203267 n=0 for b=1 to a if mod(a,b)=0 & mod(b,a)=0 改為 mod(a,b)=0 & 加 if b=a & 加 exit & 加 endif max=a & max=a 改為 max=b endif endfor ? a & ?a 改為 ? max set talk on return & 結(jié)果為:6557 37. 求出 20677 和 42067 的最大公約數(shù)。 set talk off clear a=20677 b=42067 for d=1 to a if mod(a,d)=0 and mod(b,d)=0 max=d & max=b 改為 max=d endif endfor ? max & ?d 改為 ? max set talk on return & 結(jié)果為: 713 38. 求 559399 的所有非平凡因子(即除 1 和它本身以外的約數(shù))中最小的。 set talk off clear a=559399 for n=2 to a if mod(a,n)=0 loop & loop 改為 exit endif endfor return & 結(jié)果為: 73 42. 求 9269 和 8671 的最小公倍數(shù)。 set talk off clear a=9269 b=8671 for k=a to a*b step a if mod(k,b)0 loop endif & 加 exit endfor ? k set talk on return & 結(jié)果為:2668801 44. 已知數(shù)列: 1,2,4,7,11,16,,其規(guī)律是相鄰兩項之差依次是1,2,3,4,5,。試求出此數(shù)列中大于 5000 的最小的項。 set talk off clear a=1 for n=0 to 1000 a=a+n if a5000 loop & loop 改為 exit endif endfor ? n & ?n 改為 ?a set talk on return & 結(jié)果為:5051 49. 求出 100 以內(nèi)最小的自然數(shù)n,使得從 1 開始的連續(xù) n 個自然數(shù)的立方之和大于 88888。 set talk off clear s=0 for n=1 to 100 a=n*3 & a=n*3 改為 a=n3 s=s+a if s88888 exit endif endfor ? a & ?a 改為 ?n set talk on return & 結(jié)果為: 24 54. 設(shè)一數(shù)列 f(n): f(1)=1,當n1 時 f(n)=1/(f(n-1)+1)。試求出此數(shù)列的前 20項中大于 0.618的項數(shù)。 set talk off clear f=1.00000000 n=0 for k=2 to 20 f=1/f+1 & f=1/f+1 改為 f=1/(f+1) if f0.618 n=n+1 endif endfor ? N & ?n 改為 ? n+1 set talk on return & 答案: 15 55. 設(shè)有用 26 個字母表示的 26個表達式: a=1 , b=1/(a+1),c=1/(b+2), z=1/(y+25)。試求出這 26 個字母中其值小于 0.1的字母個數(shù)。 set talk off clear lett=1 n=0 for k=1 to 26 & 26 改為 25 lett=1/(lett+k) if lett54321 n=n+1 42 endif f1=f2 f2=f3 f3=f1 & f3=f1 改為 f3=f endfor ? n set talk on return & 答案: 5 58. 已知一個由分數(shù)組成的數(shù)列: 1/2, 3/5, 8/13, 21/34,其特點是:從其中第 2 個數(shù)起,每個分數(shù)的分子都是前一分數(shù)的分子分母之和。而其分母都是其分子與前一分數(shù)的分之和。試求出此數(shù)列的前 25 項中其值大于 0.618 的項數(shù)。 set talk off clear f1=1 f2=2 n=0 for k=1 to 25 f=f1/f2 if f0.618 n=n+1 endif f1=f2 & f1=f2 改為 f1=f1+f2 f2=f1 & f2=f1 改為 f2=f1+f2 endfor ? n set talk on return & 答案: 20 62. 回文指的是正讀和反讀都一樣的一串字符,如 121、 1221。試求出 1421,4112內(nèi)所有回文數(shù)的和。 set talk off clear s=0 for x=1421 to 4112 a=x/1000 & a=x/1000 改為 a=int(x/1000) b=int(x-a*1000)/100) c=int(x-a*1000-b*100)/10) d=x-a*1000-b*100-c*10 if a=d and b=c s=s*x & s=s*x 改為 s=s+x endif endfor ? s set talk on return & 答案:74250 77. 若一個自然數(shù)恰好等于某個整數(shù)的平方,則稱此數(shù)為完全平方數(shù)。如 144 是完全平方數(shù),因為 它 等于 12 的平 方。 求1000,3000內(nèi)所有完全平方數(shù)的和。 set talk off clear s=0 for x=1000 to 3000 y=sqrt(x) & y=sqrt(x) 改為 y=int(sqrt(x) if x=y*y s=s+x endif endfor ? x & x 改為 s set talk on return & 答案: 43539 78. 若一個自然數(shù)恰好是它的平方的末后幾位數(shù),則稱此數(shù)為自同構(gòu)數(shù)。如 5 和 76 都是自同構(gòu)數(shù),因為它們的平方分別是 25和 5776。求 2,99999內(nèi)所有自同構(gòu)數(shù)之和。(提示 :若 x 是 m 位同構(gòu)數(shù),則 x 的平方除以 10 的 m次方的余數(shù)就是 x) set talk off clear s=0 for x=2 to 99999 y=x*x m=len(ltrim(str(x) if mod(y,10*m)=x s=s+x endif endfor ? y set talk on return & 答案:101114 79. 求滿足條件 A*B=54321 且使 A+B的值最小的自然數(shù)對 A、B 中較大的一個數(shù)。(提示:設(shè)A0 r=mod(a,p) if r=1 n=1 endif a=int(a/p) enddo ? N set talk on return & 答案: 13 88. 求出將十進制整數(shù)99887766554 等值轉(zhuǎn)換為十六進制形式表示后其中字母 C 的個數(shù)。(提示:模擬人工計算的“ 16除取余”法) set talk off clear a=99887766554 p=16 n=0 do while a=0 r=mod(a,p) if r=11 n=n+r endif a=int(a/p) enddo ? n set talk on return & 答案: 2 43 89. 已知數(shù)列 f(n):f(1)=1,f(2)=1,當 n2 時 f(n)=f(n-2)+f(n-1)。試求此數(shù)列的第 15 項至第 25 項共11 項之和。 set talk off clear dimension f(25) f(1)=1 f(2)=1 s=0 for n=3 to 25 f(n)=f(n-2)+f(n-1) if n=11 s=f(n) endif endfor ? s set talk on return & 答案:195431 91. 求出將十進制小數(shù)0.987654321 等值轉(zhuǎn)換為二進制形式表示后前 25位小數(shù)中數(shù)字 0的個數(shù)。(提示:使用 “ 2 乘取整”法) set talk off clear x=0.987654321 n=0 for k=1 to 25 x=2*x z=int(x) x=x-z if z=1 n=n+z endif endfor ? n set talk on return & 答案 : 8 93. 對自然數(shù) A、 B、 C,若 ABC且 A*A+B*B=C*C,則稱 A,B,C為一組勾股弦數(shù),其中 A、 B、 C分別稱為勾、股、弦。試求出弦為 25000 的勾股弦數(shù)組的個數(shù)。 set talk off clear c=25000 n=1 for a=1 to c-1 b=int(sqrt(c*c-a*a) if a*a+b*b=c*c and ab n=n+a endif endfor ? n set talk on return & 答案 : 5 95. 求方程 3x-7y=1 在條件|x|100 且 |y|40 下的整數(shù)解的個數(shù)。 set talk off clear n=0 for x=-99 to 99 y=int(3*x-1)/7) if 3*x-7*y=1 or abs(y)40 n=n+x endif endfor ? n set talk on return & 答案 : 26 300、已知 24 有 8 個正整數(shù)因子(即 :1,2,3,4,6,8,12,24),而 24 正好被其因子個數(shù) 8 整除。求300,1000之間能被其因子數(shù)目整除的數(shù)的總和。 set talk off clea sm=0 for n=300 to 1000 s=0 for i=1 to n if mod(n,i)=0 s=s+1 endif endfor if mod(n,s)=0 sm=sm+n endif endfor ? sm set talk on return 答案: 36550 296 、 找 滿 足 以 下 條 件 : X2+Y2+Z2=412 且 X+Y+Z之值最大的三個正整數(shù) X,Y,Z, 求 X+Y+Z 之值 . set talk off clea max=0 for x=0 to 41 for y=0 to 41 for z=0 to 41 if x2+y2+z2=41*41 if maxx+y+z max=x+y+z endif endif endfor endfor endfor ? max set talk on return 答案: 71 295、把一張一元鈔票 ,換成一分、二分和五分硬幣 ,每種至少 1 枚 ,問兌換后其中二分的硬幣恰有20 枚的方案共有多少種 ? set talk off clea n=0 for yi=1 to 60 for wu=1 to 20 er=20 if yi+er*2+wu*5=100 n=n+1 endif endfor endfor ? n set talk on return 答案: 11 290、設(shè)某四位數(shù)的各位數(shù)字的平方和等于 198,問滿足這種條件的最大數(shù)和最小數(shù)之 和是多少? set talk off clea min1=9999 max1=1000 for x=1000 to 9999 a=int(x/1000) b=int(x-a*1000)/100) c=int(x-b*100-a*1000)/10) d=mod(x,10) if a*a+b*b+c*c+d*d=198 if max1x min1=x endif endif endfor ? max1+min1 set talk on return 答 案: 12749 280、一個自然數(shù)是素數(shù),且它的數(shù)字位置經(jīng)過任意對換后仍為素數(shù),則稱為絕對素數(shù)。如 13,試求兩位數(shù)中最大的絕對素數(shù)與最小絕對素數(shù)之差。 set talk off clea min=100 max=0 for i=10 to 99 j=mod(i,10)*10+int(i/10) f1=1 for k=2 to i-1 if mod(i,k)=0 44 f1=0 endif endfor f2=1 for k=2 to j-1 if mod(j,k)=0 f2=0 endif endfor if f1=1 and f2=1 if mini min=i endif max=i endif endfor ? max-min Return 答案: 86 276、 水仙花數(shù) 是指這樣的數(shù),其各位數(shù)字的立方和等于該數(shù)本身,如 :153=13+53+33。編寫程序,計算從 100 年開始到3000 年為止,最大的水仙花數(shù)年號為多少? set talk off clea s=100 for i=100 to 3000 a=int(i/1000) b=int(i-a*1000)/100) c=int(mod(i,100)/10) d=mod(i,10) if a*3+b*3+c*3+d*3=i if si s=i endif endif endfor ? s Return 答案: 407 273、設(shè)有一個 12*12 方陣 A( I,j) ,其每個元素的值為該元素下標的平方和 , 求出該矩陣所有主對角線( i=j)上的元素的累加和 . (注 :I,j 從 1 開始 ) set talk off dime a(12,12) s=0 for i=1 to 12 for j=1 to 12 a(i,j)=i*i+j*j if i=j s=s+a(i,j) endif endfor endfor ? s Return 答案: 1300 269、若一個四位正整數(shù)是另一個正整數(shù)的平方,且各位數(shù)字的和是一個平方數(shù),則稱該四位正整數(shù)是 四位雙平方數(shù) 。例如: 由于 7396=862 ,且7+3+9+6=25=52,則稱 7396 是 四位雙平方數(shù) 。求所有 四位雙平方數(shù) 且十位數(shù)字是 3 的數(shù)的之和 。 set talk off clea n=0 for i=1000 to 9999 a=int(i/1000) b=int(i-a*1000)/100) c=int(mod(i,100)/10) d=mod(i,10) x=a+b+c+d if int(sqrt(i)2=i and int(sqrt(x)2=x and c=3 n=n+i endif endfor ? n set talk on return 答案: 8836 264、編寫程序,求所有符合算式 ij*ji=1300 的最大數(shù) ij(即i*10+j)。其中 i、 j 是 19 之間的一位整數(shù)。 set talk off clea max=0 for i=1 to 9 for j=1 to 9 if (10*i+j)*(10*j+i)=1300 if max10*i+j max=10*i+j endif endif endfor endfor ? max Return 答案: 52 261、勾股弦數(shù)是滿足公式: A2+B2=C2 (假定 ABBC。 求 A, B, C 均小于或等于 100 的倒勾股數(shù)有多少組? set talk off clear n=0 for a=1 to 100 for b=1 to 100 for c=1 to 100 if 1/(a2)+1/(b2)=1/(c2) and ab and bc and bc ? a,b,c n=n+1 endif endfor endfor endfor ? a,b,c 均小于或等于 100 的倒勾股數(shù)有 45 +str(n)+組 set talk on return 求 A, B, C 之和小于 100 的倒勾股數(shù)有多少組? set talk off clear n=0 for a=1 to 100 for b=1 to 100 for c=1 to 100 if 1/a2+1/b2=1/c2 and ab and bc and a+b+cb and bc ? a,b,c IF MAXb and bc ? a,b,c S=S+A endif endfor endfor endfor ? a 值的和 是 ,S set talk on return 3、 已知 Aa+b min=a+b &提示:當 A=x if maxfx f0=fx x0=x endif endfor ? x0 set talk on return 6、 求 351, 432之間所有既不能被 3 整除,又不能被 8 整除的正整數(shù)的個數(shù)。 set talk off clear n=0 for x=351 to 432 if mod(x,3)0 and mod(x,8)0 n=n+1 endif endfor ? n set talk on return 7、 求 1-5000 之間能同時被 3 和 7 整除的數(shù)的個數(shù)。 set talk off clear n=0 for x=1 to 5000 if mod(x,3)=0 and mod(x,7)=0 n=n+1 endif endfor ? n set talk on return 8、 有一個分數(shù)序列: 2/1, 3/2, 5/3, 8/5,13/8, 21/13(注:該數(shù)列從第二項開始,其分子是前項的分子與分母的和,而其分母是前一項的分子),求出這個序列前 24 項的和。要求:按四舍五入的方式精確到小數(shù)點的后第二位。 方法一: set talk off clear s=0 f1=2 f2=1 for n=1 to 24 s=s+f1/f2 f=f1+f2 f2=f1 f1=f endfor ? round(s,2) set talk on return 方法二: set talk off clear s=0 a=2 &分子 b=1 &分母 for n=1 to 24 s=s+a/b a=a+b b=a-b endfor ? round(s,2) set talk on return 9、 已知 Fibonacci 數(shù)列: 1,1,2,3,5,8,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n2 試求 F(45)值。 set talk off clear dime f(45) f(1)=1 f(2)=1 for n=3 to 45 f(n)=f(n-1)+f(n-2) endfor ? f(45) set talk on return 10、設(shè)某國今年的國民生產(chǎn)總值為 45600億元,若今后每年以 8%的增長率增長,計算多少年后能實現(xiàn)國民生產(chǎn)總值翻兩番? set talk off clear 最小BA BA 716699 46 s=45600 n=0 do while s4*45600 s=s*1.08 n=n+1 enddo ? n set talk on return 11 、 勾股弦數(shù)是滿足公式: A2+B2=C2 (假定 ABC)的一組正整數(shù)( A, B, C),例如,( 3, 4, 5)是勾股弦數(shù),因 為: 32+42=52。求 A, B均小于 25且 A+B+C=100的勾股弦數(shù)的個數(shù)。 set talk off clear n=0 for a=1 to 25 for b=1 to 25 for c=1 to 100 if a2+b2=c2 and a+b+c100 and ab and bc n=n+1 ? a,b,c &輸出 A, B, C 的值 endif endfor endfor endfor ? n set talk on return 12、 若某整數(shù)平方等于某兩個正整數(shù)平方之 和的正整數(shù)稱為弦數(shù)。例如:由于32+42=52,則 5 為弦數(shù),求 100, 200之間弦數(shù) 的數(shù)目 。 set talk off clea n=0 for c=100 to 200 for a=1 to c-1 b=c2-a2 if int(sqrt(b)*int(sqrt(b)=b ? c n=n+1 exit endif endfor endfor ? n set talk on return 13、 設(shè)有 6 個十進制數(shù)字 a,b,c,d,f,e,求滿足 abcdfe=fdcba 條 件 的 五位 數(shù)abcdf(a0,e0,e1)的個數(shù)。 set talk off clear n=0 for a=1 to 9 for b=0 to 9 for c=0 to 9 for d=0 to 9 for f=0 to 9 for e=2 to 9 if (a*10000+b*1000+c*100+d*10+f)*e=f*10000+d*1000+c*100+b*10+a n=n+1 ? a,b,c,d,f,e endif endfor endfor endfor endfor endfor endfor ? n set talk on return 14、 設(shè)某四位數(shù)的各位數(shù)字的立方和等于 100,試問有多少個這樣的四位數(shù)? set talk off clear n=0 for i=1000 to 9999 a=int(i/1000) b=int(i-a*1000)/100) c=int(mod(i,100)/10) d=i%10 if a2+b2+c2+d2=100 n=n+1 endif endfor ? n 15、 求方程 8x-5y=3,在 |x|=150, |y|=200內(nèi)的整數(shù)解。試問這樣的整數(shù) 解中 x+y|的最大值是多少? set talk off clear for x=-150 to 150 for y=-200 to 200 if 8*x-5*y=3 max=x+y endif endfor endfor ? max set talk on return 16 、已知: A1=1, A2=1/(1+A1), A3=1/(1+A2), An=1/(1+An-1), , 求 A50。(按四舍五入的方式精確到小數(shù)點后第三位)。( 0.618) set talk off clear a=1 for i=2 to 50 a=1/(a+1) endfor ? A50=,round(a,3) set talk on return 17、 有一個三位數(shù)滿足下列條件 : (1)此三位數(shù)的三位數(shù)字各不相同 ; (2)此三位數(shù)等于它的各位數(shù)字的立方和。試求這種三位數(shù)共有多少個? ( 4) set talk off clear n=0 for i=100 to 999 a=int(i/100) b=int(i-a*100)/10) c=i%10 if a3+b3+c3=i and ab and ac and bc n=n+1 endif endfor ? n set talk on return 18、 已知 求 f(0)到 f(50)中的最大值。( 598325) set talk off clear dime f(50) f(1)=1 f(2)=0 f(3)=-1 max=0 for n=4 to 50 f(n)=f(n-1)-2*f(n-2)+f(n-3) if max=i f=i for k=2 to (f-2)-1 if mod(f-2,k)=0 exit endif if k=f-2-1 ? f,f-2 n=n+1 endif endfor endif endfor ?n 20、 數(shù)列 稱為 e 數(shù)列,每一 個 e(n),( n=1, 2)稱為 e 數(shù)。求 1, 30000之內(nèi)的最大的 e數(shù)。( 16687) set talk off clear dime f(30) f(1)=1 f(2)=1 n=3 do while n30000 exit endif )2)(3()2(2)1()(0)2(1)1()0(nnfnfnfnffff )2)(2()2()1()1()( 1)2()1( nnennenne ee 47 n=n+1 enddo set talk on return 21、求正整數(shù) 1, 500中,能同時滿足用3 除余 2,用 5 除余 3,用 7 除余 2 的所有正整數(shù)的和。( 1165) set talk off clear s=0 for x=1 to 500 if mod(x,3)=2 and mod(x,5)=3 and mod(x,7)=2 s=s+x endif endfor ? s set talk on return 22、 把一張一元鈔票,換成一分、二分和五分硬幣,每種至少 8 枚,問有多少種方案 ?( 80) set talk off clear n=0 for yi=8 to 100 for er=8 to 50 for wu=8 to 20 if yi*1+er*2+wu*5=100 n=n+1 endif endfor endfor endfor ? n, set talk on return 23、 斐波那契數(shù)列的前二項是 1, 1,其后每一項都是前面兩項之和。 求: 10000000 以內(nèi)最大的斐波那契數(shù)? ( 9227465) set talk off clear f1=1 f2=1 do while f1=10000000 f1=f1+f2 f2=f1-f2 enddo ? f2 return 求: 10000000 以內(nèi)有多少個斐波那契數(shù)?( 35) set talk off clea n=1 f1=1 f2=1 do while f1=10000000 f1=f1+f2 f2=f1-f2 n=n+1 ? f2 enddo ? n retu 24、 某些分數(shù)的分子和分母都是二位正整數(shù)的真分數(shù)具有下列特點:如果將該分數(shù)的分子的兩位數(shù)字相加作分子,而將該分數(shù)的分母的兩位數(shù)字相加作分母,得到的新分子跟原分子相等。例如,63/84=( 6+3) /( 8+4)。試求所有具有這種特點的真分子的個數(shù)。 set talk off clear n=0 for x=10 to 99 for y=10 to 99 a=int(x/10) b=x%10 c=int(y/10) d=y%10 if x/y=(a+b)/(c+d) and x/y1 n=n+1 endif endfor endfor ?n set talk on return 25、 所謂 同構(gòu)數(shù) 是指這樣一個數(shù),它出現(xiàn)在它的平方數(shù)的右側(cè),例如 5 的平方是 25, 25 的平方是 625,故 5 和 25 都是同構(gòu)數(shù),求 1, 1000之間有多少個同構(gòu)數(shù)。 方法一 set talk off clear n=0 for x=1 to 1000 p=len(alltrim(str(x) m=1 for i=1 to p m=m*10 endfor if mod(x*x,m)=x n=n+1 ? x endif endfor ? n return 25、 方法二 set talk off i=1 n=0 do while i=999 s=i2 if mod(s,1000)=i or mod(s,100)=i or mod(s,10)=i ? i, 是個同構(gòu)數(shù) n=n+1 endif i=i+1 enddo ? n set talk on return 26、求 300, 400之間最?。ù螅┑囊粋€有奇數(shù)個不同因子的整數(shù)。 set talk off clear min=400 &如果求最大,此行定義max=300 for i=300 to 400 n=0 for j=1 to i if mod(i,j)=0 n=n+1 endif endfor if mod(n,2)0 if max endif endfor set talk on return 27、在 200, 900范圍內(nèi)同時滿足以下兩個條件的十進制數(shù) . 其個位數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論