日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第十二届蓝桥杯真题

發布時間:2023/12/10 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第十二届蓝桥杯真题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2、直線

首先想用直線的哪種表示方式:使用斜截式,當k和b相等的時候就是同一條直線

雖然分子和分母都是整數,但是斜率可能是負數,所以就表示成分數形式:

截距也兩個整數表示

注意要約分,然后k和b相同的要進行去重操作,使用字符串的表示方式:“k b”k和b之間存在一個空格,確保k和b都相同

  • 去重:如果需要去重的對象由不止一個數字組成,則可以考慮將它們轉換成字符串,并用空格隔開,放在HashSet中去重
  • 斜率出現小數:那就用分數表示,那么當兩個斜率的分子和分母相等的時候就代表兩個斜率相等。
  • import java.util.*; // 1:無需package // 2: 類名必須Main, 不可修改public class Main {//不用區分a和b的大小static int gcd(int a,int b){return b==0?a:gcd(b,a%b);}public static void main(String[] args) {//哈希集合可以進行去重Set<Integer> set = new HashSet<>();Set<String> ans = new HashSet<>();int x=19,y=20;//將所有的點都放在一個集合中,注意表示方法****//需要去重是因為存在橫縱坐標相同的點for(int i=0;i<=x;i++){for(int j=0;j<=y;j++){set.add(i*100+j);//前兩位數是x軸的數值,后兩位數是y軸的數值}}List<Integer> arr = new ArrayList<>(set);int len = arr.size();//點的總數//開始遍歷for(int i =0;i<len;i++){int a=arr.get(i);for(int j=i+1;j<len;j++){int b=arr.get(j);//取出兩個坐標int x1=a/100,x2=b/100,y1=a%100,y2=b%100;int up=y1-y2,down = x1-x2;//注意斜率不存在的情況,也就是down為0的情況if(down==0) {String K=""+x1;ans.add(K);}else {int c1=gcd(up,down);String K=(up / c1)+" "+(down / c1);//使用字符串進行去重int kb=y1*down-up*x1;int c2=gcd(kb,down);String B=(kb / c2)+" "+(down / c2);//截距String ansString =K+" "+B;ans.add(ansString);}}}System.out.println(ans.size());} }

    3、貨物擺放

注意長寬高不同即為不同,而不是體積不同

  • 求n的因子
  • 三層枚舉因子
  • 其中maxn的設置,如果數組越界會報錯,故可以按照情況進行設定

    import java.util.Scanner; // 1:無需package // 2: 類名必須Main, 不可修改public class Main {private static final int maxn=1010;private static final long[] a=new long[maxn];public static void main(String[] args) {long n=2021041820210418L;//不帶L會報錯int len=0;//找出所有的因數for(long i=1;i*i<=n;i++){if(n%i==0){a[len++]=i;//如果不是平方的話,防止重復if(i!=n/i){a[len++]=n/i;}}}long cnt=0;for(int i=0;i<len;i++){for(int j=0;j<len;j++){//當i和j的乘積大于n的時候就已經不符合條件了if(i*j>n) continue;for(int k=0;k<len;k++){if(a[i]*a[j]*a[k]==n){cnt++;}}}}System.out.println(cnt);} }

    總結

    以上是生活随笔為你收集整理的第十二届蓝桥杯真题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。