算法大赛试题集合(3)

2018-12-06 21:25

perm(start + 1, buf, k); // 后续元素全排列 temp = buf[start]; // 还原 buf[start] = buf[i]; buf[i] = temp;

System.out.println(\System.out.println(\}

} else { return; } } }

任意输入二个自然数, 若商为整数, 则直接显示商; 否则把商分解成一个自然数和一个正的既约真分数之和才显示。 例如: 输入: 9, 3 显示: 9/3=3

输入: 8, 6 显示: 8/6=1+1/3

任意输入四个自然数a,b,c,d, 看成二个分数a/b, c/d. 求这二个分数之和. 和的显示格式为: 输入 3,2,1,6 输出: 3/2+1/6=1+2/3。

在自然数中, 各位数字之和的11倍正好等于自身的自然数只有一个. 请找出这个自然数。

求所有不超过1000的这样的整数, 它的平方的末二位数字相同但不为0 Ecol 9:51:18 package today;

import java.util.ArrayList; import java.util.List;

public class help13 {

static List count = new ArrayList();

static boolean function(int num) {

for(int i=0;i<10000;i++){count.add(0);} boolean bl = false; int i = 2;

while (num > 1) { if (num % i == 0) {

count.set(i-1,count.get(i-1)+1); num /= i; i = 2; } else { i++; } }

for (int k = 0; k < count.size(); k++) { if (count.get(k) <2&&count.get(k)>0) { //bl = true; break; }

if(k==count.size()-1){bl=true;} }

count = null;

count = new ArrayList(); return bl; }

public static void main(String[] args) { for (int i = 3; i <= 9999; i++) {

if (function(i) && function(i + 1)) { System.out.println(i); } } } }

package test;

//一个正整数的个位数字是6,如果把个位数字移到首位,所得到的数是原数的4倍,试编程找出满足条件的最小正整数 public class Test16 {

public static void main(String[] args) { // TODO Auto-generated method stub String str = \int n = 0, m = 0; int count = 1; while (true) {

n = (int) Math.pow(10, count) + 6; //初始化为16,106,1006,10006,。。。。 for (int i = 1; i < 3;) { str = String.valueOf(n);

String temp = str.substring(0, str.length() - 1); str = str.substring(str.length() - 1) + temp; m = Integer.valueOf(str); if (m==n*4) {

System.out.println(n + \System.exit(0); }

n = n + 10;

i = (int) (n / Math.pow(10, str.length() - 1));//判断首位是否超过2 }

count++; } } }

P是一个大于3的质数, 对某个自然数N, PN恰好是五位数, 且至少有三个位上的数字相同, 求P至少是多少。

编程求最小正整数M,N(0

验证下面结论: 一个各位数字不同且都不为0的N位数X(3<=N<=5), 将组成该数的各位数字重新排列成一个最大数和一个最小数作减法, 其差值再重复前述运算, 若干次后必出现一个N位数Y, 使之重复出现.

例如: X=213, 则有 213→321-123=198

981-189=892

982-289=693

963-369=594

954-459=495

954-459=495

这时Y=954.

package test;

import java.util.Scanner;

/*任意输入二个自然数, 若商为整数, 则直接显示商; 否则把商分解成一个自然数和一个正的既约真分数之和才显示。 例如: 输入: 9, 3 显示: 9/3=3

输入: 8, 6 显示: 8/6=1+1/3*/

public class Test17 {

public static void main(String[] args) { int a, b, n, m, l;

Scanner sc = new Scanner(System.in); System.out.println(\a = sc.nextInt();

System.out.println(\b = sc.nextInt();

n = a / b; // 商的整数部分 m = a % b;// 余数 if (m != 0) // 不为0 {

l = Gcd(m, b); // 求出余数与被除数的最大公约数 m = m / l; // 分子; b = b / l; // 分母

System.out.println(a + \} else

System.out.println(a + \}

static int Gcd(int m, int n) {

if (n == 0) return m; else

return Gcd(n, m % n); } }

任给一个自然数n,求出这个自然数不同因数的个数M

给出一个数n的不同因数个数m,求最小满足要求的自然数n,即n有m个不同的因数。

例如输入 2 则输出 2 因为2有2个因数。

m,n为自然数,其上限为k,试编写程序,由键盘输入自然数k找出满足条件:

(n^2-mn-m^2)^2=1 且使m^2+n^2达到最大的m,n。

输出能被11整除且不含重复数字的三位数。并统计个数。

已知一个四位数为ABCD,若A+C和B+D的值相等,则称这个四位数为交叉数,求四位数的交叉数和个数。

定义

2x6=12 2和6的积是12,因此2和6是12的因数。12是2的倍数,也是6的倍数。 3x4=12 3和4也是12的因数。12是3和4的倍

数。 整数A乘以整数B得到整数C,整数A与整数B就称做整数C的因数,反之整数C就为整数A与整数B的倍数。

package eclip;


算法大赛试题集合(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:苏教版语文五年级上册看拼音写词1-4单元

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: