由于第五个是要求键盘输入,所以,这段代码要执行结束必须从命令行启动,其他没了
public static void main(String[] args) {
// 测试获取空格数目
System.out.println("测试1:" + getBlankCount("test test aaa a a"));
// 递归方式测试1到N求和
System.out.println("测试2:" + sum(2));
// 查找满足要求的三位数
find();
// 求1!+2!+3!+4!+……+10!的和并显示
sum1(3);
// 接受用户从键盘输入的数据,回车后保存到文件test.txt中,若用户输入符号
input();
}
/**
* 获取空格数目
*
* @return
*/
public static int getBlankCount(String parm) {
String tmp = new String(parm);
int count = 0;
while (tmp.contains(" ")) {
tmp = tmp.replaceFirst(" ", "1");
count++;
}
return count;
}
/**
* 1到N求和的递归算法
*
* @param N
* @return
*/
public static int sum(int N) {
if (N > 1)
return N + sum(N - 1);
else
return N;
}
/**
* 找出所有三位数中,个,十,百,位数的立方等于该数本身的三位数并显示
*/
public static void find() {
for (int i = 100; i < 1000; i++) {
int x = i / 100;
int y = (i % 100) / 10;
int z = (i % 10);
if ((Math.pow(x, 3) + Math.pow(y, 3) + Math.pow(z, 3)) == i)
System.out.println("Finded : " + i + ", x : " + x + ", y : "
+ y + ", z : " + z);
}
}
/**
* 求1!+2!+3!+4!+……+10!的和并显示
*
* @param n
*/
public static void sum1(int n) {
int count = 0;
for (int i = n; i > 0; i--) {
count += sum(i);
}
System.out.println("计算结果:" + count);
}
// 测试输入并保存文件
public static void input() {
BufferedReader br = null;
BufferedWriter wr = null;
try {
while (true) {
br = new BufferedReader(new InputStreamReader(System.in));
wr = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("test.txt")));
String line = br.readLine();
if (line.equals("@"))
break;
else {
wr.append(line);
}
}
} catch (Exception e) {
} finally {
if (br != null)
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
if (wr != null)
try {
wr.flush();
wr.close();
} catch (Exception e2) {
}
}
}
只提供思路。
1.你可以用String s1保存字符串,再用字符串分割函数以空格分割,在用函数拼接字符串。s1长度-新拼接的字符串长度就是。
2.递归函数
int sum(int i){
if(i==1)
return 1;
else
return i+sum(i-1);
}
3.先用函数分解出3个数
int shuru=***;
int baocun=shuru;
int jieguo=0;
while(shuru>0){
shuru%=10;
shuru/=10;
jieguo+=shuru*shuru*shuru;
}
if(jieguo==baocun)
System.out.println(baocun);
4.递归函数
int jiecheng(int i){
if(i==1)
return 1;
else
return i*jiecheng(i-1);
}
int sum=0;
for(int i=1;i<=10;i++){
sum+=jiecheng(i);
}
这些程序题目都很基本,最好自己做边,很有帮助的。这都是现写的没编译,只提供给你思路。
public static void main(String[] args){
T t = new T();
t.tem();
System.out.println(t.sum(52));
t.p();
t.f();
}
public void tem(){
String s = "I am a student, I like java";
int count = 0;
for(int i = 0; i < s.length(); i ++){
if(s.charAt(i)==' '){
count ++;
}
}
System.out.println(count);
}
public int sum(int n){
if(n > 1){
return n + sum(n - 1);
}else{
return n;
}
}
public void p(){
int ge,bai,shi;
for(int i = 100; i <1000 ; i ++){
bai = i / 100;
shi = i / 10 - (bai *10);
ge = i % 10;
if(power(ge)+power(bai)+power(shi) == i){
System.out.print(i+" ");
}
}
}
public long power(int i){
return i*i*i;
}
public void f(){
int sum = 0;
for(int i = 1; i <= 10; i ++){
sum = sum + factorial(i);
}
System.out.println(sum);
}
public int factorial(int i){
if(i > 1){
return i * factorial(i - 1);
}else{
return i;
}
}
热心人真不少啊