好文档 - 专业文书写作范文服务资料分享网站

竞赛java编程题50题(有答案)

天下 分享 时间: 加入收藏 我要投稿 点赞

【程序1】

题目:古典问题:有一对兔子 ,从出生后第 3个月起每 个月都生一 对兔子,小兔子长到 第三个月后 每个月又生 一对兔子,假如兔子都 不死,问每个月的 兔子总数为 多少? //这是一个菲 波拉契数列 问题

i01 { g[] args) { ln(\第1个月的 兔子对数: 1\ ln(\第2个月的 兔子对数: 1\int f1 = 1, f2 = 1, f, M=24; for(int i=3; i<=M; i++) { f = f2;

f2 = f1 + f2; f1 = f; ln(\第\个月的兔子 对数: \ } } }

【程序2】 题目:判断 -200之间 有多少个素 数,并输出所有 素数。 程序分析:判断素数的 方法:用一个数分 别去除2到 sqrt(这个数),如果能被整 除, 则表明此数 不是素数,反之是素数 。 i02 { g[] args) { = 0;

for(int i=101; i<200; i+=2) { ;

for(int j=2; j<=Math.sqrt(i); j++) {

if(i ; } else { b = true; } }

ln(i );} } ln( \素数个数是 ); } }

【程序3】

题目:打印出所有 的 \水仙花数 \,所谓 \水仙花数 \是指一个三 位数,其各位数字 立方和等于 该数本身。例如:153是一 个 \水仙花数 \,因为 =1的三次方 +5的三次方 +3的三次方 。 i03 { g[] args) { int b1, b2, b3;

for(int m=101; m<1000; m++) { b3 = m / 100;

b2 = m % 100 / 10; b1 = m % 10;

if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { ln(m+\是一个水仙 花数\ } } }

【程序4】

题目:将一个正整 数分解质因 数。例如:输入90,打印出 =2*3*3*5。 程序分析:对n进行分 解质因数,应先找到一 个最小的质 数k,然后按下述 步骤完成: (1)如果这个质 数恰等于 ,则说明分解 质因数的过 程已经结束 ,打印出即可 。 (2)如果n <> k,但n能被 整除,则应打印出 k的值,并用n除以 k的商,作为新的正 整数你n,重复执行第 一步。 (3)如果n不能 被k整除,则用k+1作为k的 值,重复执行第 一步。 t java.util.*; i04{ g[] args) { er s = new Sc m.in); ( \请键入一个 正整数: \ nt(); int k=2; (n + \ (k <= n) { ;} els (k + \ else k++; } } }

【程序5】

题目:利用条件运 算符的嵌套 来完成此题 :学习成绩> =90分的同 学用A表示 ,60-89分之间 的用B表示 ,60分以下 的用C表示 。 t java.util.*; i05 { g[] args) { int x; ; m.in); ( \请输入一个 成绩: \ nt(); = x >= 90 ? 'A' : x >= 60 ? 'B'

:'C'; ln(\等级为: ); } }

【程序6】

题目:输入两个正 整数m和 ,求其最大公 约数和最小 公倍数。 /**在循环中,只要除数不 等于0,用较大数除 以较小的数 ,将小的一个 数作为下一 轮循环的大 数,取得的余数 作为下一轮 循环的较小 的数,如此循环直 到较小的数 的值为0,返回较大的 数,此数即为最 大公约数,最小公倍数 为两数之积 除以最大公 约数。* / t java.util.*; pub i06 { g[] args) { int a ,b,m; m.in); ( \键入一个整 数: \ nt(); ( \再键入一个 整数: \ nt();

deff cd = new deff(); m = cd.deff(a,b); int n = a * b / m; ln(\最大公约数 : \ ln(\最小公倍数 : \} } deff{ c int deff(int x, int y) { int t;

if(x < y) { t = x; x = y; y = t; } (y != 0) { n x; else {

int k = x % y; x = y; y = k; } } n x; }

}

【程序7】

题目:输入一行字 符,分别统计出 其中英文字 母、空格、数字和其它 字符的个数 。 t java.util.*; c c i07 { g[] args) { al = 0; cter = 0; = 0; = 0;

char[] ch = null; m.in); ine(); y(); h; i++) { if(ch >= '0' && ch <= '9') { al ++;

} else if((ch >= 'a' && ch <= 'z') || ch > 'A' && ch <= 'Z') { cter ++;

} else if(ch == ' ') { ++; } else { ++; } } ln(\数字个数 al); ln(\英文字母个 数 cter); ln(\空格个数 ); ln(\其他字符个 数 ); } }

【程序8】

题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一 个数字。例如 (此时共有 个数相加),几个数相加 有键盘控制 。 t java.util.*; i08 { g[] args) { long a , b = 0, sum = 0; m.in); m.ou (\输入数字 的值: \ nt(); (\输入相加的 项数:\ nt(); int i = 0;

(i < n) { b = b + a;

sum = sum + b; a = a * 10; ++ i; } ln(sum); } }

【程序9】

题目:一个数如果 恰好等于它 的因子之和 ,这个数就称 为 \完数 \。例如6=1+2+3.编程 找出 0以内的所 有完数。 i09 { g[] args) { ln(\到 0的完数有 : \ for(int i=1; i<1000; i++) { int t = 0;

for(int j=1; j<= i/2; j++) { if(i % j == 0) { t = t + j; } }

if(t == i) { (i + \\ } } }

【程序10】 题目:一球从 0米高度自 由落下,每次落地后 反跳回原高 度的一半;再落下,求它在 第10次落 地时,共经过多少 米?第10次反 弹多高? i10 { g[] args) { e h = 100,s = 100; for(int i=1; i<10; i++) { s = s + h; h = h / 2; } ln(\经过路程:\ ln(\反弹高度:\} }

【程序11】 题目:有1、2、3、4四个数字 ,能组成多少 个互不相同 且无重复数 字的三位数 ?都是多少? i11 {

竞赛java编程题50题(有答案)

【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题i01{g[]args)
推荐度:
点击下载文档文档为doc格式
1ph4m4hhqn4mu7526k929d31q9p63i00edi
领取福利

微信扫码领取福利

微信扫码分享