首页 > 试题广场 >

邮票

[编程题]邮票
  • 热度指数:17540 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
某人有8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张,用这些邮票中的一张或若干张可以得到多少中不同的邮资?

输入描述:


输出描述:
输出一行,表示题目所求。
示例1

输入

输出

import java.util.ArrayList;

public class Main {
    public static void main(String[] args){
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i <= 5; i++){
            for (int j = 0; j <= 4; j++){
                for (int k = 0; k <= 6; k++){
                    int sum = 0;
                    sum = 8 * i + 10 * j + 18 * k;
                    if (!list.contains(sum)){
                        list.add(sum);
                    }
                }
            }
        }
        System.out.println(list.size() - 1);
    }
}
java
发表于 2020-05-01 14:38:55 回复(0)
Java
import java.util.HashSet;

public class Main {
    public static void main(String[] args) {
        //8 角的邮票5 张,1 元的邮票4 张,1 元8 角的邮票6 张
        HashSet<Integer> set = new HashSet<>();
        for (int i = 0; i <= 5; i++)
            for (int j = 0; j <= 4; j++)
                for (int k = 0; k <= 6; k++) {
                    if (i == 0 && j == 0 && k == 0) continue;
                    set.add(8 * i + 10 * j + 18 * k);
                }
        System.out.println(set.size());
    }
}




编辑于 2020-03-18 15:33:56 回复(0)
import java.util.HashSet;
import java.util.Set;

public class Main {     public static void main(String[] args) {
   int x=8;
   int y=10;
   int z=18;
   int sum=0;
   HashSet set=new HashSet();
   for(int i=0;i<=5;i++){        for(int j=0;j<=4;j++){            for(int k=0;k<=6;k++){               sum=i*x+j*y+k*z;               set.add(sum);            }        }
   }
   System.out.println(set.size()-1);     }         }      

发表于 2019-05-11 15:29:20 回复(0)

import java.util.HashSet;

import java.util.Set;

public class Main {

    public static void main(String[] args) {

        Set hashSet = new HashSet();

        for (int i = 0; i <=5; i++) {

            for (int j = 0; j <=4; j++) {

                for (int j2 = 0; j2 <=6; j2++) {

                    int a = 8*i+10*j+18*j2;

                    if(a!=0) {

                        hashSet.add(a);

                        }

                }

            }

        }

        System.out.println(hashSet.size());

    }

}


发表于 2019-04-10 18:07:47 回复(0)
public class Main{
    public static void main(String[] args){
        double[] combinnationNum=new double[210];
        int n=0;
        int count=0;
//穷举所有情况
        for(int i=0;i<=5;i++){
            for(int j=0;j<=4;j++){
                for(int z=0;z<=6;z++){
                    combinnationNum[n]=0.8*i+1*j+1.8*z;
                    n++;
                }
            }
        }
//对数组进行排序,这步好像题目没要求
        for(int i=0;i<combinnationNum.length;i++){
            for(int j=i;j<combinnationNum.length;j++){
                if(combinnationNum[i]>combinnationNum[j]){
                    double temp=combinnationNum[i];
                    combinnationNum[i]=combinnationNum[j];
                    combinnationNum[j]=temp;
                }
            }
        }
//去掉重复的情况
        for(int i=0;i<combinnationNum.length;i++){
            boolean flag=true;
            for(int j=0;j<i;j++){
                if((combinnationNum[i]-combinnationNum[j])>0.001f){
                    flag=true;
                }else{
                    flag=false;
                    break;
                }
            }
            if(flag&&combinnationNum[i]>0){
                count++;
            }
        }
        System.out.println(count);
    }
}
发表于 2019-03-26 10:29:38 回复(0)
//HashSet去掉重复元素,不用判断,set的底层帮我们判断
//最后减一是去掉都为0的情况
import java.util.HashSet;
import java.util.Set;

public class Main {
    public static void main(String[] args) {
        Set<Integer> set = new HashSet();
        for(int i=0;i<=5;i++){
            for(int j=0;j<=4;j++){
                for(int k=0;k<=6;k++){
                    int sum = i*8+10*j+18*k;
                    set.add(sum);
                }
            }
        }
        System.out.println(set.size()-1);
    }
}

发表于 2019-03-23 23:47:03 回复(0)

package main;
import java.util.Arrays;
public class Main
{
  public static void main(String [] args)
  {
   float[] arr=new float [210];
   int dd=0;
  
   for(int i=0;i<=6;i++)
   {
    for(int j=0;j<=4;j++)
    {
     for(int k=0;k<=5;k++)
     {
     
      arr[dd]=(float)(i*1.8+j*1.0+k*0.8);
      dd++;
     }
    }
   }
   Arrays.sort(arr);
   for(int i=1;i<arr.length-1;i++)
   {  
     if(arr[i]==arr[i+1])
     arr[i]=-1;
   }
  
   int num=0;
   for(float a:arr)
   {
    if(a>0)num++;
   }
  
   System.out.println(num);
  
  
  }
}

发表于 2019-03-12 13:00:07 回复(0)
import java.util.HashSet;

public class Main 
{
    public static void main(String[] args)
    {
         int[] a = {0,8,16,24,32,40};
         int[] b = {0,10,20,30,40};
         int[] c = {0,18,36,54,72,90,108};
         HashSet set = new HashSet();
         for(int i = 0;i < a.length; i++)
         {
             for(int j = 0; j < b.length; j++)
             {
                 for(int k = 0; k < c.length; k++)
                 {
                     int sum = a[i] + b[j] + c[k];
                     set.add(sum);
                 }
             }
         }
         
         System.out.println(set.size() - 1);
    }

}
发表于 2019-03-11 22:15:17 回复(0)
import java.util.Arrays;
public class Main{
 public static void main(String[] args) {
  int []num=new int[5*6*7];
  int p=0;
 for(int i=0;i<=5;i++) {
  for(int j=0;j<=4;j++) {
   for(int k=0;k<=6;k++) {
   num[p]=i*8+j*10+k*18;
   p++;
}}}//有一种是三个零,因此最后结果要减掉一个或者从数组的第一号位即数组的第二个元素开始考虑
 Arrays.sort(num);
 int o=1;
 for(int i=1;i<num.length;i++) {
  if(num[i]!=num[i-1]) o++;
 }
 System.out.println(o-1);
 }}

发表于 2019-03-05 21:04:38 回复(0)
public class Main
{
static int judge()
{
int stampnum = 0;
Set set = new HashSet();
for (int x = 0; x <= 5; x++)
{
for (int y = 0; y <= 4; y++)
{
for (int z = 0; z <= 6; z++)
{
int num = 8 * x + 10 * y + 18 * z;
set.add(num);

}
}
}
return set.size()-1;
}
public static void main(String[] args)
{
System.out.println(judge());
}
}

编辑于 2019-02-21 23:04:28 回复(0)

import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] arggs){
List result = new ArrayList();
for(int x = 0; x 5; x++){
for(int y = 0; y 4; y++){
for(int z = 0; z 6; z++){
if(x + y + z == 0){
continue;
}else{
int num = 8x + 10y + 18*z; if(!result.contains(num)){
result.add(num); }
}
}
}
}
System.out.println(result.size()); }
}

发表于 2019-02-20 23:04:01 回复(0)