「题目代码」P1007~P1012(Java)

1007 C基础-计负均正

import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        int x;
        int negativeCnt=0,positiveSum=0,zeroCnt=0;
        for(x=1;x<=20;++x)
        {
            int n=sc.nextInt();
            if(n<0) negativeCnt++;
            else if(n==0) zeroCnt++;
            else positiveSum+=n; 
        }
        System.out.printf("%d\n%.2f",negativeCnt,positiveSum/(double)(20-negativeCnt-zeroCnt));
    }
}

1009 C基础-统计字符

import java.util.*;
import java.io.*;

public class Main
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        String inputStr=sc.nextLine();
        int ch=0,sp=0,num=0,other=0;
        for(int i=0;i!=inputStr.length();++i)
        {
            if(Character.isDigit(inputStr.charAt(i)))
                num++;
            else if(Character.isLetter(inputStr.charAt(i)))
                ch++;
            else if(inputStr.charAt(i)==' ') sp++;
            else other++;
        }
        System.out.printf("%d\n%d\n%d\n%d\n",ch,sp,num,other);
    }
}

1010 C基础-阶乘数列

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        BigInteger x=BigInteger.valueOf(0);
        for(int i=1;i<=30;++i)
        {
            BigInteger tmp=BigInteger.valueOf(1);
            for(int j=1;j<=i;++j)
            {
                tmp=tmp.multiply(BigInteger.valueOf(j));
                //System.out.println(tmp.toString()+" "+String.valueOf(j));
            }
            //System.out.println(tmp);
            x=x.add(tmp);
        }
        System.out.printf("%.2e",x.doubleValue());
    }
}

1011 C基础-进制转换

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main
{
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt();
        System.out.println(Integer.toOctalString(x));
    }
}

1012 SZ斐波拉契数列

保存计算结果以加快运算速度。注意每次清空。

import java.util.*;
import java.io.*;
import java.math.BigInteger;

public class Main
{
    static long[] arr=new long[35];
    static int a,b;
    public static void main(String args[])
    {
        Scanner sc=new Scanner(System.in);
        int T=sc.nextInt();
        while(T--!=0)
        {
            for(int i=0;i<=30;++i) arr[i]=0;
            a=sc.nextInt();
            b=sc.nextInt();
            int n=sc.nextInt();
            System.out.println(f(n));
        }
    }

    public static long f(int x)
    {
        //System.out.println(x);
        if(arr[x]!=0) return arr[x];
        else
        {
            if(x==1) arr[x]=a;
            else if(x==2) arr[x]=b;
            else if(x%2==1) arr[x]=f(x-1)+f(x-2);
            else arr[x]=f(x-1)+f(x-2)+f(x-3);
            return arr[x];
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值