JAVA算法100例题目

合集下载

经典的JAVA算法题及答案

经典的JAVA算法题及答案

经典的JAVA算法题及答案1.使用Java语言编写代码,将一个正整数分解质因数,例如:输入90,打印输出90=2*3*3*5。

答案:public class Math{public static void main(String[] args){int n,i;System.out.println("\nplease input a number:\n");Scanner input=new Scanner(System.in);n=input.nextInt();System.out.println(n);for(i=2;i<=n;i++){while(n!=i){if(n%i==0){System.out.println(i);n=n/i;}else{break;}}}System.out.println(n);}}2.题目如下:用1、2、2、3、4、5这六个数字,用java写一个main函数,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。

static int[] bits = new int[] { 1, 2, 3, 4, 5 };/*** @param args*/public static void main(String[] args) {sort("", bits);}private static void sort(String prefix, int[] a) {if (a.length == 1) {System.out.println(prefix + a[0]);}for (int i = 0; i < a.length; i++) {sort(prefix + a, copy(a, i));}}private static int[] copy(int[] a,int index){int[] b = new int[a.length-1];System.arraycopy(a, 0, b, 0, index);System.arraycopy(a, index+1, b, index, a.length-index-1);return b;}3.编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。

JAVA编程题全集100题及答案

JAVA编程题全集100题及答案

Java程序设计总复习题1. 编写一个Java程序,用if-else语句判断某年份是否为闰年。

// Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。

");elseSystem.out.println(year+" 年不是闰年。

");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。

(p64,例2-2)// programme name ForT est.javapublic class ForT est {public static void main( String args[] ) {int i,j,mul,sum=0;for(i=1;i<=10;i++) {mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;}System.out.println(“1!+2!+3!+……+10!= ”+sum);}}4. (1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。

Java程序练习100题

Java程序练习100题

上机练习题练习1(4)1.取两个小于1000的正随机数,若两个数均小于10,先将它们都放大50倍,否则不改变这两个数最后,求这两个数的和并将结果输出。

要求这些输出结果仅保留小数点后4位(不需四捨五入)。

import java.awt.*;import java.applet.*;public class Applet1 extends Applet{public void init( ){Label out1=new Label(" ");Label out2=new Label(" ");double x,y;add(out1);add(out2);x=Math.random( )*1000;y=Math.random( )*1000;if(x<10&y<10) { x*=50; y*=50; }out1.setText(""+x+"+"+y+" 约等于");out2.setText(""+(int)((x+y)*10000)/10000.0);}}2.取一个小于10000的正随机整数,并输出该数的平方根。

要求这些输出结果在四捨五入后保留小数点后4位。

import java.awt.*;import java.applet.*;public class Applet1 extends Applet{public void paint(Graphics g){int k;k=(int)(Math.random( )*1000);g.drawString(""+k+" 的平方根约等于"+(int)((Math.sqrt(k)+0.00005)*10000)/10000.0,20,20);}}50~200之间的正随机整数,如果该数为奇数则求它的平方根并转换成float型数后再输出;如果该数为偶数则求它的平方并输出。

JAVA算法编程题全集(50题及答案)

JAVA算法编程题全集(50题及答案)

程序1。

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?//这是一个菲波拉契数列问题public class lianxi01 {public static void main(String[] args) {System.out.println("第1个月的兔子对数: 1");System.out.println("第2个月的兔子对数: 1");int f1 = 1, f2 = 1, f, M=24;for(int i=3; i<=M; i++) {f = f2;f2 = f1 + f2;f1 = f;System.out.println("第" + i +"个月的兔子对数: "+f2);}}}。

程序2。

题目:判断101-200之间有多少个素数,并输出所有素数。

程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class lianxi02 {public static void main(String[] args) {int count = 0;for(int i=101; i<200; i+=2) {boolean b = false;for(int j=2; j<=Math.sqrt(i); j++){if(i % j == 0) { b = false; break; }else { b = true; }}if(b == true) {count ++;System.out.println(i );}}System.out.println( "素数个数是: " + count);}}。

程序3。

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

java高频算法题

java高频算法题

java高频算法题一、字符串匹配算法1. 滑动窗口:给定一个字符串数组和目标字符串,判断是否存在目标字符串在任意一个字符串中连续出现两次。

2. KMP算法:给定一个字符串和一个正整数k,判断字符串中是否至少有k个字符与目标字符串相同。

3. Boyer-Moore字符串匹配算法:给定一个字符串数组和目标字符串,在尽可能少的比较下,快速找到目标字符串在哪个位置开始出现。

4. Rabin-Karp 算法:给定一个字符串数组和目标字符串,判断是否存在目标字符串在任意一个字符串中出现。

二、数组算法1. 最大子序和:给定一个整数数组,判断是否存在两个数相等且它们的和等于所有数的最大值。

2. 最大上升和:给定一个整数数组,找出数组中的最大上升和,即连续正整数的和。

3. 最长递增子序列:给定一个整数数组,找出最长的不包含重复元素的递增子序列。

4. 最长回文子串:给定一个字符串,判断是否存在最长回文子串。

5. 三数之和:给定n个整数,判断是否存在三个数总和等于某一个特定的数。

6. 寻找重复的数字:给定一个整数数组,找出重复出现的数字。

7. 数组去重:给定一个整数数组,判断是否存在重复的元素,并去除重复元素。

三、链表算法1. 单链表插入节点:在单链表的末尾插入一个新的节点。

2. 单链表反转:将单链表中的节点顺序反转。

3. 单链表寻找节点:在单链表中寻找特定值的节点。

4. 单链表删除节点:从单链表中删除特定值的节点。

5. 单链表排序:对单链表中的节点进行排序。

四、树算法1. 二叉树中序遍历:给定一棵二叉树,实现中序遍历并输出结果。

2. 判断二叉树是否为平衡树:判断二叉树是否满足平衡条件,即左子树和右子树的高度差不超过1且它们的和不超过2。

3. 判断二叉树是否为二叉搜索树:判断二叉树是否满足二叉搜索树的特性,即左子树的所有节点的值小于根节点的值,右子树的所有节点的值大于根节点的值。

4. 二叉树求值:给定一棵二叉树和一个表达式,判断表达式是否能够通过二叉树进行求值。

leetcode hot 100 java题解详细注释版

leetcode hot 100 java题解详细注释版

leetcode hot 100 java题解详细注释版以下是LeetCode Hot 100 Java 题解详细注释版:1.两数之和题目描述:给定一个整数数组nums 和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

解题思路:可以使用哈希表来解决该问题。

遍历数组,对于每个元素,计算出目标值与当前元素的差值,然后在哈希表中查找该差值是否存在,如果存在则返回对应的下标。

Java 代码实现:javapublic int[] twoSum(int[] nums, int target) {Map<Integer, Integer> map = new HashMap<>();for (int i = 0; i < nums.length; i++) {int complement = target - nums[i];if (map.containsKey(complement)) {return new int[]{map.get(complement), i};}map.put(nums[i], i);}return new int[]{};}1.盛最多水的容器题目描述:给定n 个非负整数a1,a2,...,an,每个数代表一个坐标点(i, ai)。

在坐标内画n 条垂直线,使得i 垂直线的两个端点分别为(i, ai) 和(i, 0)。

找出其中的两条线,使得它们与x 轴构成的容器可以容纳最多的水。

解题思路:可以使用贪心算法来解决该问题。

首先对数组进行升序排序,然后遍历数组,对于每个元素,计算当前位置的容量并更新最大容量。

为了得到最大容量,我们可以将前面的元素看作水池的左右壁,将后面的元素看作水池的高度。

Java 代码实现:javapublic int maxArea(int[] height) {Arrays.sort(height);int maxArea = 0;for (int i = 0; i < height.length; i++) {for (int j = i + 1; j < height.length; j++) {maxArea = Math.max(maxArea, Math.min(height[i], height[j]) * (j - i));}}return maxArea;}。

java中有趣的算法题

java中有趣的算法题

java中有趣的算法题在Java中,有许多有趣的算法题可以挑战和解决。

以下是一些常见的有趣算法题:1. 斐波那契数列,编写一个函数来计算斐波那契数列中的第n 个数字。

斐波那契数列是一个数字序列,每个数字都是前两个数字的和(0, 1, 1, 2, 3, 5, 8, ...)。

2. 最大子序列和,给定一个整数数组,找到一个具有最大和的连续子数组。

例如,对于数组[-2, 1, -3, 4, -1, 2, 1, -5, 4],最大子序列和为6([4, -1, 2, 1])。

3. 反转字符串,编写一个函数来反转一个字符串。

例如,输入"Hello, World!",输出"!dlroW ,olleH"。

4. 字符串中的第一个唯一字符,给定一个字符串,找到第一个不重复出现的字符并返回它的索引。

如果不存在这样的字符,返回-1。

例如,对于字符串"leetcode",返回0。

5. 两数之和,给定一个整数数组和一个目标值,找出数组中和为目标值的两个数的索引。

例如,对于数组[2, 7, 11, 15]和目标值9,返回[0, 1]。

6. 验证回文字符串,给定一个字符串,判断它是否是回文字符串。

回文字符串是指正着读和倒着读都一样的字符串。

例如,对于字符串"A man, a plan, a canal: Panama",返回true。

7. 有效的括号,给定一个只包含'(',')','{','}','['和']'的字符串,判断字符串中的括号是否有效。

例如,对于字符串"()[]{}",返回true。

8. 二叉树的最大深度,给定一个二叉树,找出其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点数。

例如,对于二叉树[3, 9, 20, null, null, 15, 7],最大深度为3。

JAVA算法100例,全源码

JAVA算法100例,全源码

JAVA经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}public static int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{public int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=2;i<=200;i++)if(mymath.iszhishu(i)==true)System.out.println(i);}}class math{public int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}public boolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )return false;return true;}}【程序3】题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

JAVA经典算法50题

JAVA经典算法50题

JA V A经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765)1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main(String args[]){int i=0;for(i=1;i<=20;i++)System.out.println(f(i));}public static int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或public class exp2{public static void main(String args[]){int i=0;math mymath = new math();for(i=1;i<=20;i++)System.out.println(mymath.f(i));}}class math{public int f(int x){if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class Sushu{ public static void main(String[] args){int i,j,count=0;for (i = 101; i <= 200; i++) // 101-200的数{for (j = 2; j <= (int)Math.sqrt(i); j++){if (i % j == 0)break;}if (j > (int)Math.sqrt(i)){count++;System.out.println(i);}}System.out.println("从101到200间有" + count + "个素数。

JAVA编程题全集100题及答案

JAVA编程题全集100题及答案

Java 程序设计总复习题1、写一个Java 程序在屏幕上出“你好!”。

(p13,例1-1)//programme name Helloworld.javapublic class Helloworld {public static void main(String args[]) {System.out.print (" 你好! " );}}2.写一个 Java 程序,用 if-else 句判断某年份能否年。

//Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是年。

");elseSystem.out.println(year+" 年不是年。

");}}//if-else 句3、写一个Java 程序在屏幕上出1! +2! +3! +⋯⋯ +10 !的和。

( p64,例 2-2)//programme name ForTest.javapublic class ForTest {public static void main( String args[] ){ int i,j,mul,sum=0; for(i=1;i<=10;i++){mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;}System.out.println( “1! +2! +3! +⋯⋯ +10 != ”+sum); }}4.( 1)写一个 Circle ,有:①一个成量Radius (私有,浮点型);// 寄存的半径;②两个结构方法Circle( )Circle(double r )// 将半径// 建 Circle象将半径初始化r③ 三个成方法double getArea( )//取的面double getPerimeter( )// 取的周void show( )//将的半径、周、面出到屏幕(2)写一个柱体 Cylinder ,它承于上边的 Circle 。

JAVA编程题全集(100题及答案)

JAVA编程题全集(100题及答案)
public static void main( String args[] ) { int data[] = {100,101,102,103,104,105};
int t; try { DataOutputStream out = new DataOutputStream (new FileOutputStream(“dest.txt”)); for(int i=0;i<data.length;i++)
//构造方法
radius=r; }
double getPerimeter() { //成员方法--求圆周长
return 2*Math.PI*radius; }
double getArea() {
//成员方法--求圆面积
return Math.PI*radius*radius; }
void disp() {
import java.awt.Color; import java.awt.Graphics; import javax.swing.JApplet; public class MoveMessage extends JApplet implements Runnable {
String str; int time; private Thread thread; public void init() {
}catch(IOException e) { System.out.println(e.getMessage());} } }
8. 利用Applet类和Runnable接口实现滚动字幕,其中字幕文字(“学好Java有工作”
)和时间间隔(“200”)需要由页面文件中<Applet>标记的子标记<Param>传递。

java算法面试经典100题

java算法面试经典100题

java算法面试经典100题
很抱歉,我不能提供整个的Java算法面试经典100题,但是我可以提供一些常见的算法题目,供你参考:
1. 两数之和:给定一个整数数组nums和一个目标值target,在数组中找到和为目标值的两个整数,并返回它们的索引。

2. 无重复字符的最长子串:给定一个字符串,请找出其中不含有重复字符的最长子串的长度。

3. 盛最多水的容器:给定n个非负整数a1,a2,...,an,其中每个点的坐标表示(i,ai),在坐标系中画n条垂直线,找出两条线,使得它们与x轴一起构成的容器可以容纳最多的水。

4. 三数之和:给定一个包含n个整数的数组nums,判断nums 中是否存在三个元素a,b,c使得a + b + c = 0.找出所有满足条件且不重复的三元组。

5. 最长回文子串:给定一个字符串s,找到s中最长的回文子串。

假设s的最大长度为1000。

6. Z字形变换:将字符串s按照Z字形排列,并返回排列后的字符串。

假设n行。

7. 两两交换链表中的节点:给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。

8. 合并两个有序链表:给定两个有序链表,将它们合并为一个新的有序链表并返回。

9. 删除链表的倒数第N个节点:给定一个链表,删除链表的倒数第N个节点,并返回链表的头节点。

10. 字符串转换整数(atoi):实现函数atoi,将字符串转换为整数。

这些题目只是作为参考,你可以根据自己的需求和面试的具体要求进行更换或增加。

在准备面试时,最好根据自己的能力和时间安排一个合理的计划,重点练习一些自认为难度适中且常见的问题。

java编程题全集(100题及答案)..

java编程题全集(100题及答案)..

Java程序设计总复习题1、编写一个Java程序,用if-else语句判断某年份是否为闰年。

(分支);public class Strinput{public static void main(String args[]) {String s1=null,s2=null,ss,si,sf;int i1,i2;float f1,f2;BufferedReader strin=new BufferedReader(new InputStreamReader);try{ ("输入第一个字符串:" );s1= ();("输入第二个字符串:" );s2= ();}catch(Exception e){ i1 = (s1);i2 = (s2);f1 = (s1);f2 = (s2);ss = strAdd(s1,s2);si = strAdd(i1,i2);sf = strAdd(f1,f2);("输入的二个字符串相加结果为:"+ss );("输入字符串转换为整数相加结果为:"+si );("输入字符串转换为浮点数相加结果为:"+sf );}static String strAdd(String str1,String str2) {return str1+str2;}static String strAdd(int int1,int int2) {return (int1+int2);}static String strAdd(float flt1,float flt2) {return (flt1+flt2);}}2、应用FileInputStream类,编写应用程序,从磁盘上读取一个Java程序,并将源程序代码显示在屏幕上。

(被读取的文件路径为:E:/myjava/);public class FISDemo {public static void main(String args[]) {byte[] buf=new byte[2056];try{FileInputStream fileIn=new FileInputStream("e:/myjava/");int bytes=(buf,0,2056);String str=new String(buf,0,bytes);e){( );}}3、编写一个Java程序将当100,101,102,103,104,105个数以数组的形式写入到文件中,并以相反的顺序读出显示在屏幕上。

java练习题100道

java练习题100道

java练习题100道Java是一种广泛使用的计算机编程语言,用于开发各种类型的应用程序。

要成为一名熟练的Java开发者,需要掌握语言的基本知识和技巧。

为了帮助读者提高Java编程能力,本文提供了100道Java练习题,涵盖了各个方面的知识点和常见问题,以帮助读者更好地巩固和应用所学的Java知识。

1. 编写一个Java程序,打印出"Hello World!"。

```public class HelloWorld {public static void main(String[] args) {System.out.println("Hello World!");}}```2. 编写一个Java程序,求两个整数的和并输出结果。

```import java.util.Scanner;public class SumOfTwoNumbers {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个整数: ");int num1 = scanner.nextInt();System.out.print("请输入第二个整数: ");int num2 = scanner.nextInt();int sum = num1 + num2;System.out.println("两个整数的和是: " + sum);}}```3. 编写一个Java程序,判断一个数是奇数还是偶数。

```import java.util.Scanner;public class OddOrEven {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入一个整数: ");int num = scanner.nextInt();if (num % 2 == 0) {System.out.println("这是一个偶数。

JAVA经典算法40题

JAVA经典算法40题

JAVA经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....public class exp2{public static void main(String args[]){int i=0;for(i=1;i<=20;i++)}public static int f(int x){…if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}}或public class exp2{public static void main(String args[]){int i=0;【math mymath = new math();for(i=1;i<=20;i++)}}class math{public int f(int x){if(x==1 || x==2)*return 1;elsereturn f(x-1)+f(x-2);}}【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

public class exp2{public static void main(String args[]){:int i=0;math mymath = new math();for(i=2;i<=200;i++)if(i)==true)}}class math{public int f(int x){>if(x==1 || x==2)return 1;elsereturn f(x-1)+f(x-2);}public boolean iszhishu(int x){for(int i=2;i<=x/2;i++)if (x % 2==0 )return false;\return true;}}【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JA V A经典算法40题【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....【程序2】题目:判断101-200之间有多少个素数,并输出所有素数。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

【程序4】题目:将一个正整数分解质因数。

例如:输入90,打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。

(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

【程序5】题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a> b)?a:b这是条件运算符的基本例子。

【程序6】题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

【程序7】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句,条件为输入的字符不为'\n '.【程序8】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。

例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。

1.程序分析:关键是计算出每一项的值。

【程序9】题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。

例如6=1+2+3.编程找出1000以内的所有完数。

【程序10】题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?【程序11】1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

【程序12】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

【程序13】题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:【程序14】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

【程序15】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x> y则将x与y的值进行交换,然后再用x与z进行比较,如果x> z则将x与z的值进行交换,这样能使x最小。

【程序16】题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

【程序17】题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少。

1.程序分析:采取逆向思维的方法,从后往前推断。

猴子吃桃【程序18】题目:两个乒乓球队进行比赛,各出三人。

甲队为a,b,c三人,乙队为x,y,z三人。

已抽签决定比赛名单。

有人向队员打听比赛的名单。

a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。

【程序19】题目:打印出如下图案(菱形)*******************1.程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。

【程序20】题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

1.程序分析:请抓住分子与分母的变化规律。

【程序21】题目:求1+2!+3!+...+20!的和1.程序分析:此程序只是把累加变成了累乘。

【程序22】题目:利用递归方法求5!。

1.程序分析:递归公式:fn=fn_1*4!【程序23】题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。

问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。

问第2个人,说比第一个人大两岁。

最后问第一个人,他说是10岁。

请问第五个人多大?1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。

要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。

【程序24】题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

数组【程序25】题目:一个5位数,判断它是不是回文数。

即12321是回文数,个位与万位相同,十位与千位相同。

【程序26】题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。

1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或if语句判断第二个字母。

【程序27】题目:求100之内的素数Ex27数组【程序28】题目:对10个数进行排序1.程序分析:可以利用选择法,即从后9个比较过程中,选择一个最小的与第一个元素交换,下次类推,即用第二个元素与后8个进行比较,并进行交换。

二维数组【程序29】题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。

数组【程序30】题目:有一个已经排好序的数组。

现输入一个数,要求按原来的规律将它插入数组中。

1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

数组【程序31】题目:将一个数组逆序输出。

程序分析:用第一个与最后一个交换。

其实,用循环控制变量更简单:【程序32】题目:取一个整数a从右端开始的4~7位。

程序分析:可以这样考虑:(1)先使a右移4位。

(2)设置一个低4位全为1,其余全为0的数。

可用~(~0 < <4)(3)将上面二者进行&运算。

数组【程序33】题目:打印出杨辉三角形(要求打印出10行如下图)1.程序分析:11 3 3 11 4 6 4 11 5 10 10 5 1数组【程序34】题目:输入3个数a,b,c,按大小顺序输出。

1.程序分析:利用指针方法。

【程序35】题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

【程序36】题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数【程序37】题目:有n个人围成一圈,顺序排号。

从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

【程序38】题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n【程序39】题目:字符串排序。

【程序40】题目:海滩上有一堆桃子,五只猴子来分。

第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。

第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?。

相关文档
最新文档