国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java入門高頻考查算法邏輯基礎(chǔ)知識3-編程篇(超詳細(xì)18題1.8萬字參考編程實現(xiàn))

這篇具有很好參考價值的文章主要介紹了Java入門高頻考查算法邏輯基礎(chǔ)知識3-編程篇(超詳細(xì)18題1.8萬字參考編程實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

準(zhǔn)備這些面試題時,請考慮如下準(zhǔn)備步驟:

  • 理解問題并澄清任何可能的疑點。確保你了解了面試官的期望,包括問題限制條件和期望的解決方案。
  • 如果可能且適用的話,嘗試先給出一個簡單的解決方案,比如暴力法,然后再逐步優(yōu)化它。
  • 在優(yōu)化之前,先分析暴力解法的效率,了解它的時間和空間復(fù)雜度,然后解釋為什么需要更有效的解法。
  • 采取逐步的方法首先解決小規(guī)模問題,再逐漸遞進(jìn)到大規(guī)模問題。
  • 編寫清晰、易讀的代碼,并在寫代碼的同時解釋你的思路。
  • 一旦代碼完成,測試它并討論可能的邊界情況或錯誤,以及如何檢測和修復(fù)這些錯誤。
  • 最后,講解代碼的時間和空間復(fù)雜度,并在有可能的情況下提供優(yōu)化方案。

????????

準(zhǔn)備解決這類問題時,建議采取下面的步驟:

  • 理解數(shù)學(xué)原理:確保你懂得基本的數(shù)學(xué)公式和法則,這對于制定解決方案至關(guān)重要。
  • 優(yōu)化算法:了解時間復(fù)雜度和空間復(fù)雜度,并尋找優(yōu)化的機(jī)會。特別注意避免不必要的重復(fù)計算。
  • 代碼實踐:多編寫實踐代碼,并確保你的代碼是高效、清晰且穩(wěn)健的。
  • 錯誤檢查和測試:要為你的代碼編寫測試案例,測試標(biāo)準(zhǔn)的、邊緣情況以及異常輸入。
  • 進(jìn)行復(fù)雜問題簡化:面對復(fù)雜的問題時,先嘗試簡化問題,然后逐步分析和解決。
  • 溝通和解釋:在編寫代碼的時候清晰地溝通你的思路,不僅要寫出正確的代碼,還要能向面試官解釋你的解決方案。
  • 考慮可維護(hù)性:在真實工作中,代碼的可維護(hù)性和可讀性非常重要,因此在面試中編寫易于理解和維護(hù)的代碼也很關(guān)鍵。

目錄

一、實現(xiàn)Math.pow()方法

二、實現(xiàn)二分搜索

三、實現(xiàn)迭代法

四、實現(xiàn)快速冪算法

五、實現(xiàn)浮點數(shù)精度問題

六、實現(xiàn)避免整數(shù)溢出問題

七、實現(xiàn)最小二乘法

八、實現(xiàn)大整數(shù)的指數(shù)計算

九、實現(xiàn)二分對數(shù)運算

十、實現(xiàn)計算大數(shù)的指數(shù)模

十一、實現(xiàn)平方根函數(shù)

十二、實現(xiàn)斐波那契數(shù)列的快速計算

十三、實現(xiàn)整數(shù)劃分問題

十四、實現(xiàn)復(fù)數(shù)冪次

十五、實現(xiàn)指定范圍包含的素數(shù)

十六、實現(xiàn)水仙花數(shù)

十七、實現(xiàn)分解質(zhì)因數(shù)

十八、實現(xiàn)最大公約數(shù)和最小公倍數(shù)


一、實現(xiàn)Math.pow()方法

Math.pow()方法:

? ? Math.pow()?方法是 Java 中的一個數(shù)學(xué)函數(shù),它用于計算一個數(shù)的指定次冪。該方法接受兩個參數(shù):底數(shù)(base)和指數(shù)(exponent),并返回底數(shù)的指定次冪的結(jié)果。

方法簽名:

public static double pow(double base, double exponent)

參數(shù)說明:

  • base:指定底數(shù),即要進(jìn)行冪運算的數(shù)字。
  • exponent:指定指數(shù),即要進(jìn)行冪運算的次數(shù)。

返回結(jié)果:

  • 返回一個?double?類型的值,表示底數(shù)的指定次冪的結(jié)果。

示例用法:

double result = Math.pow(2, 3); // 計算 2 的 3 次冪,結(jié)果為 8.0

????????需要注意的是,Math.pow()?方法的返回值類型是?double,即使指數(shù)為整數(shù),結(jié)果也會是浮點數(shù)。如果需要將結(jié)果轉(zhuǎn)換為整數(shù),可以使用強(qiáng)制類型轉(zhuǎn)換或者使用?Math.round()?方法進(jìn)行四舍五入。

int result = (int) Math.pow(2, 3); // 將結(jié)果轉(zhuǎn)換為整數(shù),結(jié)果為 8
int roundedResult = Math.round((float) Math.pow(2, 3)); // 將結(jié)果四舍五入為整數(shù),結(jié)果為 8

????????在進(jìn)行冪運算時,需要考慮邊界條件,如底數(shù)為 0 且指數(shù)為負(fù)數(shù)的情況,根據(jù)實際需求進(jìn)行錯誤處理。

編程實現(xiàn):

????????在 Java 編程中,可以通過使用循環(huán)遞歸的方式實現(xiàn)類似于?Math.pow()?的功能,它用于計算一個數(shù)字的指定次冪。

????????使用循環(huán)實現(xiàn)?Math.pow()?方法可以如下所示:

public class PowerCalculator {
    public static double power(double base, int exponent) {
        if (exponent == 0) {
            return 1.0;
        }
        
        double result = 1.0;
        int absExponent = Math.abs(exponent);
        
        for (int i = 1; i <= absExponent; i++) {
            result *= base;
        }
        
        return exponent < 0 ? 1.0 / result : result;
    }
}

????????使用遞歸實現(xiàn)?Math.pow()?方法可以如下所示:

public class PowerCalculator {
    public static double power(double base, int exponent) {
        if (exponent == 0) {
            return 1.0;
        }
        
        if (exponent < 0) {
            return 1.0 / power(base, -exponent);
        }
        
        if (exponent % 2 == 0) {
            double temp = power(base, exponent / 2);
            return temp * temp;
        } else {
            return base * power(base, exponent - 1);
        }
    }
}

????????以上代碼是一個簡單的實現(xiàn)示例,注意需要考慮指數(shù)為負(fù)數(shù)的情況和迭代的邊界條件。要根據(jù)實際需求和代碼規(guī)范進(jìn)行適當(dāng)?shù)男薷暮蛢?yōu)化。

????????

二、實現(xiàn)二分搜索

????????二分搜索,也稱為二分查找,是一種高效的搜索算法,用于在有序數(shù)組或列表中查找特定元素。

????????以下是一個使用 Java 編程實現(xiàn)二分搜索的示例:

public class BinarySearch {
    public static int binarySearch(int[] arr, int target) {
        int left = 0;
        int right = arr.length - 1;
        
        while (left <= right) {
            int mid = left + (right - left) / 2;
            
            if (arr[mid] == target) {
                return mid;
            }
            
            if (arr[mid] < target) {
                left = mid + 1;
            } else {
                right = mid - 1;
            }
        }
        
        return -1;
    }
    
    public static void main(String[] args) {
        int[] arr = {1, 3, 5, 7, 9, 11, 13};
        int target = 7;
        int result = binarySearch(arr, target);
        
        if (result == -1) {
            System.out.println("Element not found");
        } else {
            System.out.println("Element found at index " + result);
        }
    }
}

????????在上述示例中,我們定義了一個?binarySearch?方法來執(zhí)行二分搜索。該方法接收一個有序數(shù)組?arr?和目標(biāo)值?target?作為參數(shù)。

????????在二分搜索中,我們使用兩個指針?left?和?right?分別指向數(shù)組的最左邊和最右邊。在每一次迭代中,我們計算中間索引?mid,并將目標(biāo)元素與?arr[mid]?進(jìn)行比較。

  • 如果?arr[mid]?等于目標(biāo)值?target,則找到了目標(biāo)元素,返回?mid。
  • 如果?arr[mid]?小于目標(biāo)值?target,則目標(biāo)值可能在?mid?的右側(cè),更新左指針?left?為?mid + 1。
  • 如果?arr[mid]?大于目標(biāo)值?target,則目標(biāo)值可能在?mid?的左側(cè),更新右指針?right?為?mid - 1。

????????重復(fù)以上步驟直到找到目標(biāo)元素或確定目標(biāo)元素不存在(即?left?大于?right),此時返回 -1。

????????在主函數(shù)中,我們創(chuàng)建了一個有序數(shù)組?arr,并以目標(biāo)值?target?為參數(shù)調(diào)用?binarySearch?方法進(jìn)行搜索。根據(jù)返回的結(jié)果,我們輸出相應(yīng)的提示信息。

????????

三、實現(xiàn)迭代法

????????迭代法是一種通過多次迭代逐漸逼近問題的解的方法。它通常通過在每一次迭代中更新變量的值,直到滿足某個終止條件來求解問題。

????????下面是一個使用 Java 編程實現(xiàn)迭代法的示例,用于求解一個方程的根:

public class Iteration {
    public static double solveEquation(double x) {
        double epsilon = 1e-6; // 終止條件:解的相對誤差小于 epsilon
        double guess = x; // 初始猜測值
        
        while (Math.abs(guess * guess - x) > epsilon) {
            guess = (guess + x / guess) / 2; // 更新猜測值
        }
        
        return guess; // 返回逼近的解
    }
    
    public static void main(String[] args) {
        double x = 16;
        double result = solveEquation(x);
        System.out.println("The square root of " + x + " is: " + result);
    }
}

????????在上述示例中,我們定義了一個?solveEquation?方法來求解方程的根。我們使用牛頓迭代法來逼近方程?guess * guess = x?的解。

????????在每一次迭代中,我們通過更新猜測值?guess?來逼近解。具體來說,我們使用公式?(guess + x / guess) / 2?來更新猜測值,直到解的相對誤差小于設(shè)定的終止條件?epsilon。

????????在主函數(shù)中,我們調(diào)用?solveEquation?方法來求解方程?guess * guess = x?的根,并輸出結(jié)果。

????????需要注意的是,迭代法是一種通用的方法,可以用于解決各種問題,不僅僅局限于方程求根。根據(jù)具體的問題,你可能需要修改迭代的終止條件和更新規(guī)則來適應(yīng)不同的應(yīng)用場景。

????????

四、實現(xiàn)快速冪算法

????????下面是一個使用 Java 編程實現(xiàn)快速冪算法的示例:

public class FastPower {
    public static double fastPower(double base, int exponent) {
        if (exponent < 0) {
            base = 1 / base;
            exponent = -exponent;
        }
        double result = 1.0;
        while (exponent > 0) {
            if (exponent % 2 == 1) {
                result *= base;
            }
            base *= base;
            exponent /= 2;
        }
        return result;
    }

    public static void main(String[] args) {
        double base = 2.0;
        int exponent = 10;
        double result = fastPower(base, exponent);
        System.out.println(base + " raised to the power of " + exponent + " is: " + result);
    }
}

????????在上述示例中,我們定義了一個?fastPower?方法,用于計算一個實數(shù)?base?的整數(shù)次冪。在該方法中,我們使用快速冪算法來進(jìn)行高效的指數(shù)計算。

????????具體而言,我們使用迭代的方式計算?base?的?exponent?次冪。在每一次迭代中,我們將?exponent?視作二進(jìn)制數(shù),通過位運算的方式來進(jìn)行計算,從而減少了計算的次數(shù)。

????????在主函數(shù)中,我們以?base?為底,exponent?為指數(shù)調(diào)用?fastPower?方法進(jìn)行計算,并輸出結(jié)果。

????????快速冪算法的關(guān)鍵是將指數(shù)?exponent?表示為二進(jìn)制形式,并利用位運算的特性來降低計算復(fù)雜度,從而實現(xiàn)快速的冪次計算。

????????

五、實現(xiàn)浮點數(shù)精度問題

????????在計算機(jī)中,浮點數(shù)精度問題是由于浮點數(shù)的有限位數(shù)表示導(dǎo)致的問題,可能會出現(xiàn)舍入誤差和精度損失。在實際編程中,可以通過以下方式來處理浮點數(shù)精度問題:

????????1.?使用BigDecimal類:對于需要高精度計算的場景,可以使用 Java 中的?BigDecimal?類。BigDecimal?提供了任意精度的定點數(shù)表示和操作,可以有效避免浮點數(shù)精度問題。

import java.math.BigDecimal;

public class PrecisionIssue {
    public static void main(String[] args) {
        BigDecimal num1 = new BigDecimal("0.1");
        BigDecimal num2 = new BigDecimal("0.2");
        BigDecimal sum = num1.add(num2);
        System.out.println("Sum: " + sum);
    }
}

????????2.?比較浮點數(shù):在比較浮點數(shù)時,避免直接使用?==?來進(jìn)行比較,而是考慮使用一個很小的誤差范圍,或者檢查它們的差值是否在某個特定范圍內(nèi)。

public class CompareFloats {
    public static void main(String[] args) {
        double num1 = 0.1 + 0.2;
        double num2 = 0.3;
        double epsilon = 1e-10; // 定義一個很小的誤差范圍
        if (Math.abs(num1 - num2) < epsilon) {
            System.out.println("num1 and num2 接近相等");
        } else {
            System.out.println("num1 和 num2 不相等");
        }
    }
}

????????3.?注意精度丟失:在進(jìn)行浮點數(shù)計算時,要注意可能的精度丟失,尤其是在連續(xù)的浮點數(shù)計算中??梢酝ㄟ^合理的算法設(shè)計來減少精度損失,或者在需要高精度計算時選擇合適的數(shù)據(jù)類型。

????????

六、實現(xiàn)避免整數(shù)溢出問題

????????在編程中,避免整數(shù)溢出問題是非常重要的,特別是在處理大數(shù)值時。以下是一些常見的方法用于避免整數(shù)溢出問題:

????????1.?使用長整型:對于需要處理較大整數(shù)的情況,可以選擇使用長整型(long),它的取值范圍更大,可以避免一些整數(shù)溢出問題。

public class AvoidIntegerOverflow {
    public static void main(String[] args) {
        long num1 = 2147483648L; // 使用L后綴聲明長整型常量
        long num2 = 2147483647L;
        long sum = num1 + num2;
        System.out.println("Sum: " + sum);
    }
}

????????2.?類型轉(zhuǎn)換和范圍檢查:在進(jìn)行類型轉(zhuǎn)換時,要仔細(xì)檢查目標(biāo)類型的取值范圍,避免轉(zhuǎn)換后超出范圍。需要特別注意整數(shù)相乘和相加操作可能導(dǎo)致溢出,所以要在進(jìn)行這些操作前進(jìn)行范圍檢查。

????????3.?使用BigInteger類:對于需要處理超大整數(shù)的情況,可以使用 Java的?BigInteger?類,它提供了任意精度的整數(shù)操作,可以避免整數(shù)溢出問題。

import java.math.BigInteger;

public class AvoidIntegerOverflow {
    public static void main(String[] args) {
        BigInteger num1 = new BigInteger("12345678901234567890");
        BigInteger num2 = new BigInteger("98765432109876543210");
        BigInteger product = num1.multiply(num2);
        System.out.println("Product: " + product);
    }
}

????????4.?注意算術(shù)運算:在進(jìn)行整數(shù)加減乘除運算時,務(wù)必注意運算結(jié)果的范圍,尤其是在循環(huán)或遞歸計算中,要及時進(jìn)行范圍檢查并采取相應(yīng)的處理方法,比如使用長整型或者BigInteger類。

????????

七、實現(xiàn)最小二乘法

????????當(dāng)使用 Java 進(jìn)行最小二乘法實現(xiàn)時,可以使用 Apache Commons Math 庫來進(jìn)行線性回歸計算。以下是一個使用 Apache Commons Math 實現(xiàn)最小二乘法的示例代碼:

import org.apache.commons.math3.fitting.PolynomialCurveFitter;
import org.apache.commons.math3.fitting.WeightedObservedPoints;
import org.apache.commons.math3.fitting.WeightedObservedPoint;

public class LinearRegressionExample {
    public static void main(String[] args) {
        WeightedObservedPoints points = new WeightedObservedPoints();
        
        // 構(gòu)造輸入數(shù)據(jù)
        points.add(0, 1);
        points.add(1, 3);
        points.add(2, 7);
        points.add(3, 13);
        points.add(4, 21);
        points.add(5, 31);
        
        // 使用最小二乘法擬合線性模型
        PolynomialCurveFitter fitter = PolynomialCurveFitter.create(1); // 1 代表一次線性模型
        double[] coeff = fitter.fit(points.toList());
        
        // 輸出擬合的線性模型參數(shù)
        double m = coeff[1]; // 斜率
        double c = coeff[0]; // 截距
        System.out.println("斜率 m: " + m);
        System.out.println("截距 c: " + c);
    }
}

????????在這個示例中,我們使用了 Apache Commons Math 庫的?PolynomialCurveFitter?和?WeightedObservedPoints?類。首先, 我們將輸入數(shù)據(jù)添加到?WeightedObservedPoints?對象中,然后使用?PolynomialCurveFitter?進(jìn)行一次線性模型的擬合。得到的?coeff?數(shù)組包含了截距和斜率。

????????需要注意的是,為了運行以上的代碼,需要在項目中包含 Apache Commons Math 庫的 JAR 文件。

這是一個簡單的演示,實際應(yīng)用中可能需要處理更復(fù)雜的數(shù)據(jù)和模型,以及結(jié)果的解釋和驗證。

????????

八、實現(xiàn)大整數(shù)的指數(shù)計算

????????在Java中,可以使用BigInteger類來進(jìn)行大整數(shù)的指數(shù)計算。BigInteger類提供了支持大整數(shù)運算的方法,包括指數(shù)計算。

重要的是要注意,BigIntegerpow方法接受的指數(shù)是一個int類型的值。這意味著指數(shù)的大小還是有限的,但底數(shù)本身可以是任意大的。BigInteger提供的方法會自動處理數(shù)字的存儲和運算,避免了溢出的問題。

????????如果你需要進(jìn)行的指數(shù)計算的結(jié)果比較大,直接使用BigIntegerpow方法可能會導(dǎo)致內(nèi)存不足的錯誤,因為BigInteger對象會試圖存儲運算結(jié)果的所有位。然而,這不是溢出,而是由于大數(shù)運算需要消耗的內(nèi)存空間超出了JVM為應(yīng)用程序分配的內(nèi)存。

????????下面我將示范如何使用BigInteger類來實現(xiàn)指數(shù)計算:

import java.math.BigInteger;

public class BigIntegerExponentiation {
    public static void main(String[] args) {
        BigInteger base = new BigInteger("2");
        int exponent = 1000; // 指數(shù)為1000,非常大的數(shù)

        try {
            // 大整數(shù)的指數(shù)計算
            BigInteger result = base.pow(exponent);
            
            // 輸出結(jié)果
            System.out.println(base + " raised to the power of " + exponent + " is :\n" + result);
        } catch (ArithmeticException ex) {
            // 捕獲異常,并打印異常信息
            System.err.println("ArithmeticException: " + ex.getMessage());
        }
    }
}

????????在這個示例中,由于BigInteger的設(shè)計目的是處理任意大小的整數(shù),所以它自身方法已經(jīng)進(jìn)行了大數(shù)溢出的處理。你不需要擔(dān)心像基本數(shù)據(jù)類型那樣的數(shù)值溢出問題。但是,你仍然需要處理潛在的OutOfMemoryError,這可能發(fā)生在極端情況下,當(dāng)你的計算結(jié)果超出了JVM可分配的最大內(nèi)存。

????????如果你預(yù)計你將處理極其龐大的數(shù)值,可能需要考慮優(yōu)化你的算法,或者提前檢查指數(shù)大小以避免不合理的計算。例如,在實際情況中,要對非常大的數(shù)字進(jìn)行高次方的指數(shù)運算是不切實際的,因為其結(jié)果將是非常巨大的。

????????最重要的是,BigInteger類的運算方法都是以一種方式實現(xiàn)的,它們會在發(fā)生溢出時提供數(shù)學(xué)上正確的結(jié)果,或者拋出異常來表明某種形式的錯誤。在執(zhí)行BigInteger運算時,你不需要擔(dān)心傳統(tǒng)意義上的溢出,因為任何單個BigInteger都可以表示任意大的數(shù)字(受限于內(nèi)存)。

????????

九、實現(xiàn)二分對數(shù)運算

????????Java中的Math.log:

? ? Math.log?函數(shù)用于計算以自然常數(shù) e 為底的對數(shù)。這個函數(shù)的用法與 JavaScript 中的類似,接受一個參數(shù)并返回以 e 為底的對數(shù)值。

double result = Math.log(x);

????????其中?x?是要計算對數(shù)的值,返回的結(jié)果是?x?的自然對數(shù)。舉個例子,Math.log(1)?的結(jié)果是 0,因為任何數(shù)以自身為底的對數(shù)都是 1;而?Math.log(Math.E)?的結(jié)果將等于 1,因為 e^1 等于 e;Math.log(10)?的結(jié)果約等于 2.302,因為 e^2.302 約等于 10。

這個函數(shù)在處理數(shù)學(xué)和科學(xué)計算時非常有用。希望這可以幫助你理解 Java 中的?Math.log?函數(shù)!

????????

????????用Math.log實現(xiàn):

????????在Java中,可以使用Math類的log方法來實現(xiàn)二分對數(shù)運算。該方法接受兩個參數(shù),一個是底數(shù),另一個是指數(shù)。它返回以指定底數(shù)為底、指定指數(shù)的對數(shù)。

????????以下是一個示例代碼,演示如何使用Math類的log方法進(jìn)行二分對數(shù)運算:

public class BinaryLogarithm {
    public static void main(String[] args) {
        double base = 2;
        double number = 8;

        // 進(jìn)行二分對數(shù)運算
        double result = Math.log(number) / Math.log(base);

        // 輸出結(jié)果
        System.out.println(result);
    }
}

????????在這個示例中,我們使用底數(shù)2和數(shù)字8進(jìn)行二分對數(shù)運算。首先,我們計算以e為底、number的自然對數(shù)(即ln(number))。然后,我們計算以e為底,底數(shù)為base的自然對數(shù)(即ln(base))。最后,我們將這兩個結(jié)果相除得到最終的結(jié)果,也就是以指定底數(shù)為底、指定數(shù)字的對數(shù)。

????????需要注意的是,Math類的log方法返回的是以e為底的自然對數(shù)。為了得到以其他底數(shù)為底的對數(shù),我們需要使用換底公式,將底數(shù)為e的對數(shù)轉(zhuǎn)換為以任意底數(shù)的對數(shù)。具體實現(xiàn)就是將以e為底的對數(shù)除以以指定底數(shù)為底的對數(shù)。在這個示例中,我們使用Math.log(number)獲取以e為底、指定數(shù)字的自然對數(shù),然后將其除以Math.log(base)獲取以指定底數(shù)為底的對數(shù)。

????????這樣就可以使用Java中的Math類來實現(xiàn)二分對數(shù)運算。需要注意的是,Math類的log方法返回的是一個double類型的數(shù)值,對結(jié)果進(jìn)行舍入或轉(zhuǎn)換,以滿足你的特定需求。

????????

????????不用Math.log實現(xiàn):

????????使用循環(huán)和二分法來實現(xiàn)二分對數(shù)運算。以下是使用二分法來計算二分對數(shù)的示例代碼:

public class BinaryLogarithm {
    public static void main(String[] args) {
        double base = 2;
        double number = 8;
        // 進(jìn)行二分對數(shù)運算
        double result = binaryLogarithm(base, number);
        // 輸出結(jié)果
        System.out.println(result);
    }

    public static double binaryLogarithm(double base, double number) {
        double low = 0;   // 最小范圍
        double high = number;  // 最大范圍
        double precision = 0.00000001;  // 精度,即最小差距

        double mid;
        // 通過二分法逼近對數(shù)值
        while (high - low > precision) {
            mid = (low + high) / 2;  // 計算中間值
            double calculated = Math.pow(base, mid);  // 計算以base為底、mid的指數(shù)冪

            if (calculated < number) {
                low = mid;   // 縮小范圍到中間值和高值之間
            } else {
                high = mid;  // 縮小范圍到低值和中間值之間
            }
        }
        return (low + high) / 2;  // 返回逼近出的最終結(jié)果
    }
}

????????在這個示例中,我們使用循環(huán)和二分法來逼近二分對數(shù)。我們先設(shè)置最小范圍low為0,最大范圍highnumber,然后使用二分法不斷縮小范圍,直到找到一個足夠接近的結(jié)果。

????????在每次循環(huán)中,我們計算中間值mid,將以base為底、mid的指數(shù)冪保存在變量calculated中。如果calculated小于number,說明我們的中間值太小,因此我們更新lowmid,把范圍縮小到midhigh之間。如果calculated大于等于number,說明我們的中間值太大,因此我們更新highmid,將范圍縮小到lowmid之間。這樣通過不斷的二分法逼近,直到范圍足夠小以滿足精度要求,我們得到逼近的結(jié)果。

????????最后,我們返回lowhigh的平均值作為最終的逼近結(jié)果。

????????請注意,這個方法只適用于正數(shù)的二分對數(shù)運算。如果需要處理負(fù)數(shù)或0,或者要處理更復(fù)雜的情況,請引入更多的條件檢查和邏輯。

????????

十、實現(xiàn)計算大數(shù)的指數(shù)模

????????在計算大數(shù)的指數(shù)模時,可以使用快速冪算法(也稱為冪的二進(jìn)制拆分算法)。這種算法可以高效地計算大數(shù)的指數(shù),并且可以防止溢出。

????????下面是一個用 Java 編程實現(xiàn)快速冪算法計算大數(shù)的指數(shù)模的示例:

import java.math.BigInteger;

public class ModuloExponentiation {
    public static BigInteger modPow(BigInteger base, BigInteger exponent, BigInteger modulus) {
        BigInteger result = BigInteger.ONE;
        base = base.mod(modulus); // 對底數(shù)先取模
        while (exponent.compareTo(BigInteger.ZERO) > 0) { // 當(dāng)指數(shù)大于 0 時循環(huán)
            if (exponent.and(BigInteger.ONE).compareTo(BigInteger.ONE) == 0) { // 如果指數(shù)的最低位為 1
                result = result.multiply(base).mod(modulus); // 將 base 乘到結(jié)果中并對模取余
            }
            base = base.multiply(base).mod(modulus); // base 自乘并對模取余
            exponent = exponent.shiftRight(1); // 右移一位
        }
        return result;
    }

    public static void main(String[] args) {
        BigInteger base = new BigInteger("12345678901234567890");
        BigInteger exponent = new BigInteger("98765432109876543210");
        BigInteger modulus = new BigInteger("1000000007");
        BigInteger result = modPow(base, exponent, modulus);
        System.out.println("Result: " + result);
    }
}

????????在上述示例中,我們使用了 Java 的 BigInteger 類來處理大數(shù)運算,并實現(xiàn)了一個高效的?modPow()?方法來計算大數(shù)的指數(shù)模。這個方法避免了直接計算指數(shù)后再取模所帶來的溢出風(fēng)險,而是在每一步計算中都及時取模,確保計算過程中的值始終保持在可控范圍內(nèi)。

????????

十一、實現(xiàn)平方根函數(shù)

????????在 Java 中,可以使用牛頓迭代法來實現(xiàn)一個求平方根的函數(shù)。牛頓迭代法是一種迭代的方法,它可以逐步逼近一個函數(shù)的零點,從而求得函數(shù)的解。

????????下面是一個用 Java 編程實現(xiàn)求平方根函數(shù)的示例:

public class SqrtCalculator {
    public static double sqrt(double x) {
        if (x < 0) {
            throw new IllegalArgumentException("Input must be a non-negative number");
        }
        
        double guess = x;  // 初始猜測值為 x
        double error = 1e-15;  // 定義誤差范圍

        while (Math.abs(guess - x / guess) > error * guess) {
            guess = (x / guess + guess) / 2.0;  // 使用牛頓迭代法逐步逼近平方根
        }
        return guess;
    }

    public static void main(String[] args) {
        double number = 25.0;
        double result = sqrt(number);
        System.out.println("Square root of " + number + " is " + result);
    }
}

????????在上述示例中,我們定義了一個?sqrt()?方法來計算一個數(shù)的平方根,其中使用了牛頓迭代法。在?main()?方法中,我們調(diào)用?sqrt()?方法來計算 25 的平方根,并打印結(jié)果。

????????需要注意的是,上述示例中的實現(xiàn)是簡化的,實際應(yīng)用中可能需要考慮更多的邊界條件和錯誤處理。

????????

十二、實現(xiàn)斐波那契數(shù)列的快速計算

????????斐波那契數(shù)列可以通過矩陣快速冪的方法進(jìn)行高效計算。這種方法可以在 O(log n) 的時間復(fù)雜度內(nèi)計算斐波那契數(shù)列的第 n 項。

????????以下是一個使用 Java 編程實現(xiàn)斐波那契數(shù)列快速計算的示例:

public class Fibonacci {
    public static long fibonacci(int n) {
        if (n < 0) {
            throw new IllegalArgumentException("Input must be a non-negative number");
        }
        
        if (n == 0) {
            return 0;
        }
        
        long[][] baseMatrix = {{1, 1}, {1, 0}};  // 基礎(chǔ)矩陣
        powerMatrix(baseMatrix, n - 1);  // 將基礎(chǔ)矩陣進(jìn)行快速冪計算

        return baseMatrix[0][0]; // 返回結(jié)果
    }

    // 矩陣快速冪計算
    private static void powerMatrix(long[][] matrix, int n) {
        if (n <= 0) {
            return;
        }
        
        long[][] result = {{1, 0}, {0, 1}};  // 初始化為單位矩陣

        while (n > 0) {
            if ((n & 1) == 1) {  // 如果 n 的二進(jìn)制表示的最低位為 1
                multiplyMatrix(result, matrix);  // 累乘當(dāng)前的基礎(chǔ)矩陣
            }
            n >>= 1;  // 右移,相當(dāng)于 n 除以 2
            multiplyMatrix(matrix, matrix);  // 基礎(chǔ)矩陣自乘
        }

        // 將最終結(jié)果更新到原始矩陣
        matrix[0][0] = result[0][0];
        matrix[0][1] = result[0][1];
        matrix[1][0] = result[1][0];
        matrix[1][1] = result[1][1];
    }

    // 矩陣乘法
    private static void multiplyMatrix(long[][] m1, long[][] m2) {
        long a = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0];
        long b = m1[0][0] * m2[0][1] + m1[0][1] * m2[1][1];
        long c = m1[1][0] * m2[0][0] + m1[1][1] * m2[1][0];
        long d = m1[1][0] * m2[0][1] + m1[1][1] * m2[1][1];

        m1[0][0] = a;
        m1[0][1] = b;
        m1[1][0] = c;
        m1[1][1] = d;
    }

    public static void main(String[] args) {
        int n = 10;
        long result = fibonacci(n);
        System.out.println("The " + n + "-th Fibonacci number is: " + result);
    }
}

????????在上述示例中,我們使用了矩陣快速冪的方法來計算斐波那契數(shù)列的第 n 項。這種方法利用了矩陣的冪運算特性,可以在較短的時間內(nèi)計算出較大項的斐波那契數(shù)。

????????

十三、實現(xiàn)整數(shù)劃分問題

????????整數(shù)劃分問題可以使用動態(tài)規(guī)劃來解決。動態(tài)規(guī)劃是一種將原問題拆分成子問題來解決的技術(shù),通常適用于具有重疊子問題和最優(yōu)子結(jié)構(gòu)性質(zhì)的問題。

????????以下是一個使用 Java 編程實現(xiàn)整數(shù)劃分問題的示例:

public class IntegerPartition {
    public static int countPartitions(int n) {
        int[] partitionCount = new int[n + 1];
        partitionCount[0] = 1; // 初始化邊界條件

        for (int i = 1; i <= n; i++) {
            for (int j = i; j <= n; j++) {
                partitionCount[j] += partitionCount[j - i];
            }
        }

        return partitionCount[n];
    }

    public static void main(String[] args) {
        int n = 5;
        int result = countPartitions(n);
        System.out.println("The number of partitions for " + n + " is: " + result);
    }
}

????????在上述示例中,我們定義了一個?countPartitions?方法來計算整數(shù) n 的劃分?jǐn)?shù)量。具體來說,我們使用了一個數(shù)組?partitionCount?來記錄每個整數(shù)的劃分?jǐn)?shù)量,然后通過迭代計算每個整數(shù)的劃分?jǐn)?shù)量,最終得到整數(shù) n 的劃分?jǐn)?shù)量。

????????在主函數(shù)中,我們調(diào)用?countPartitions?方法來計算 5 的劃分?jǐn)?shù)量,并輸出結(jié)果。整數(shù)劃分算法的關(guān)鍵就在于動態(tài)規(guī)劃的思想,通過解決小規(guī)模問題,逐步構(gòu)建出大規(guī)模問題的解。

????????

十四、實現(xiàn)復(fù)數(shù)冪次

????????復(fù)數(shù)的冪次運算可以通過將復(fù)數(shù)表示為實部和虛部的形式,并使用歐拉公式進(jìn)行計算。歐拉公式表達(dá)了復(fù)數(shù)的指數(shù)函數(shù)與三角函數(shù)之間的關(guān)系。

????????以下是一個使用 Java 編程實現(xiàn)復(fù)數(shù)冪次的示例:

public class ComplexPower {
    public static ComplexNumber power(ComplexNumber base, double exponent) {
        double realPart = Math.pow(base.getReal(), exponent) * Math.cos(exponent * base.getImaginary());
        double imaginaryPart = Math.pow(base.getReal(), exponent) * Math.sin(exponent * base.getImaginary());
        return new ComplexNumber(realPart, imaginaryPart);
    }

    public static void main(String[] args) {
        ComplexNumber base = new ComplexNumber(2.0, 3.0);
        double exponent = 2.0;
        ComplexNumber result = power(base, exponent);
        System.out.println("The result is: " + result);
    }
}

????????在上述示例中,我們定義了一個?ComplexPower?類,其中包含一個?power?方法來計算復(fù)數(shù)的冪次。我們使用歐拉公式將復(fù)數(shù)的冪次運算轉(zhuǎn)化為三角函數(shù)的計算,然后根據(jù)實部和虛部的計算公式得到最終結(jié)果。

????????在主函數(shù)中,我們創(chuàng)建了一個復(fù)數(shù)對象?base,然后調(diào)用?power?方法計算該復(fù)數(shù)的平方,最后輸出結(jié)果。

????????需要注意的是,上述示例中使用了一個自定義的?ComplexNumber?類來表示復(fù)數(shù),該類包含了實部和虛部的屬性以及相關(guān)的訪問方法。在實際應(yīng)用中,你可能需要根據(jù)自己的需求來選擇使用現(xiàn)有的復(fù)數(shù)庫或自定義實現(xiàn)復(fù)數(shù)類。

????????

十五、實現(xiàn)指定范圍包含的素數(shù)

????????編程實現(xiàn)指定范圍內(nèi)包含的素數(shù),可以使用以下的步驟來實現(xiàn):

????????1. 定義一個函數(shù)?isPrime,用來判斷一個數(shù)是否為素數(shù)。素數(shù)是大于1且只能被1和自身整除的數(shù)。

public static boolean isPrime(int n) {
    if (n <= 1) {
        return false;
    }
    for (int i = 2; i <= Math.sqrt(n); i++) {
        if (n % i == 0) {
            return false;
        }
    }
    return true;
}

????????2.?定義一個函數(shù)?findPrimesInRange,用來查找指定范圍內(nèi)的所有素數(shù),并將它們打印出來。

public static void findPrimesInRange(int start, int end) {
    for (int i = start; i <= end; i++) {
        if (isPrime(i)) {
            System.out.print(i + " ");
        }
    }
    System.out.println();
}

????????3.?在主程序中調(diào)用?findPrimesInRange?函數(shù)并傳入指定的范圍參數(shù)。

public static void main(String[] args) {
    int start = 101; // 指定范圍的起始值
    int end = 200; // 指定范圍的終止值
    
    System.out.println("素數(shù)范圍 " + start + " 到 " + end + ":");
    findPrimesInRange(start, end);
}

????????運行以上代碼,將會輸出在指定范圍內(nèi)的素數(shù)。

????????

十六、實現(xiàn)水仙花數(shù)

????????水仙花數(shù):指一個n位數(shù) (n≥3),它的每個位上的數(shù)字的 n 次冪之和等于它本身。例如:1^3 + 5^3 + 3^3 = 153。

????????編程實現(xiàn)

public class NarcissisticNumber {
    public static boolean isNarcissisticNumber(int num) {
        String strNum = String.valueOf(num);
        int n = strNum.length();
        int sum = 0;
        for(int i = 0; i < n; i++) {
            int digit = Character.getNumericValue(strNum.charAt(i));
            sum += Math.pow(digit, n);
        }
        return sum == num;
    }

    public static void findNarcissisticNumbers(int start, int end) {
        System.out.println("水仙花數(shù)范圍 " + start + " 到 " + end + ":");
        for(int i = start; i <= end; i++) {
            if(isNarcissisticNumber(i)) {
                System.out.print(i + " ");
            }
        }
        System.out.println();
    }

    public static void main(String[] args) {
        int startRange = 100;
        int endRange = 1000;
        findNarcissisticNumbers(startRange, endRange);
    }
}

????????在這個示例中,isNarcissisticNumber?方法用于判斷一個數(shù)是否為水仙花數(shù)。findNarcissisticNumbers?方法用于找出指定范圍內(nèi)的所有水仙花數(shù),并打印它們。

????????運行以上代碼,將輸出范圍內(nèi)的水仙花數(shù)??梢愿鶕?jù)需改?startRange?和?endRange?的值來找到不同范圍內(nèi)的水仙花數(shù)。

????????

十七、實現(xiàn)分解質(zhì)因數(shù)

????????在Java中,可以通過編程實現(xiàn)分解質(zhì)因數(shù)的算法。下面是一個示例的分解質(zhì)因數(shù)的Java程序,以及對實現(xiàn)步驟的簡要分析。

????????編程實現(xiàn)

public class PrimeFactorization {
    public static void primeFactorization(int number) {
        System.out.print("質(zhì)因數(shù)分解結(jié)果:" + number + " = ");
        for (int i = 2; i <= number; i++) {
            while (number % i == 0) {
                System.out.print(i);
                number = number / i;
                if (number > 1) {
                    System.out.print(" * ");
                }
            }
        }
    }

    public static void main(String[] args) {
        int number = 60; // 要分解質(zhì)因數(shù)的數(shù)字
        primeFactorization(number); // 調(diào)用分解質(zhì)因數(shù)的方法
    }
}

實現(xiàn)步驟分析:

  1. 創(chuàng)建一個Java類,并定義一個靜態(tài)方法primeFactorization,該方法接受一個整數(shù)作為參數(shù),用于進(jìn)行質(zhì)因數(shù)的分解。
  2. primeFactorization方法中,通過循環(huán)從2開始逐個嘗試作為質(zhì)因數(shù)。如果當(dāng)前數(shù)能夠被整除,就將這個質(zhì)因數(shù)輸出,并將被除數(shù)改為原來的數(shù)除以這個質(zhì)因數(shù)。
  3. 如果被除數(shù)大于1,表示仍有剩余的質(zhì)因數(shù)需要求解,就輸出乘號然后繼續(xù)尋找下一個質(zhì)因數(shù)。
  4. main方法中,調(diào)用primeFactorization方法,并傳入要分解的數(shù)字。

這個算法的時間復(fù)雜度為 O(logn),其中n是輸入數(shù)字。因為算法在循環(huán)中不斷地將n除以小于n的因數(shù),直到n變?yōu)?為止。因此,該算法是一個高效的質(zhì)因數(shù)分解方法。

????????

十八、實現(xiàn)最大公約數(shù)和最小公倍數(shù)

????????最大公約數(shù)(Greatest Common Divisor,簡稱GCD):指兩個或多個整數(shù)中能夠整除它們的最大正整數(shù)。換句話說,最大公約數(shù)是一組整數(shù)的公有因子中最大的一個。

最大公約數(shù)常用于數(shù)學(xué)、計算機(jī)科學(xué)和工程等領(lǐng)域,可以用來簡化分?jǐn)?shù)、求解方程、求解最簡整數(shù)倍等問題。

????????最常見的計算最大公約數(shù)的方法是使用歐幾里得算法(Euclidean Algorithm)。歐幾里得算法基于以下原理:兩個整數(shù)a和b的最大公約數(shù)等于a被b整除的余數(shù)r,而b和r的最大公約數(shù)等于r被b整除的余數(shù),依次類推,直到余數(shù)為0時,最大公約數(shù)就是上一個非零的余數(shù)。

????????以下是一個使用歐幾里得算法計算最大公約數(shù)的示例代碼:

public class GCD {
    public static void main(String[] args) {
        int a = 48;
        int b = 36;

        // 計算最大公約數(shù)
        int gcd = calculateGCD(a, b);

        // 輸出結(jié)果
        System.out.println("最大公約數(shù):" + gcd);
    }

    // 使用歐幾里得算法計算最大公約數(shù)
    public static int calculateGCD(int a, int b) {
        while (b != 0) {
            int remainder = a % b;
            a = b;
            b = remainder;
        }
        return a;
    }
}

????????在這個示例中,我們使用歐幾里得算法計算整數(shù)a和b的最大公約數(shù)。我們通過迭代的方式,重復(fù)計算a除以b的余數(shù),并將b賦值給a,將余數(shù)賦值給b,直到余數(shù)為0。最后,最大公約數(shù)就是上一個非零的余數(shù)。

????????在示例中,我們計算了48和36的最大公約數(shù),結(jié)果為12。

????????需要注意的是,歐幾里得算法對于計算最大公約數(shù)非常高效,時間復(fù)雜度為O(log n),其中n是a和b中較大的整數(shù)。因此,它是一種常用且有效的方法來計算最大公約數(shù)。

????????

? ? ? ? 最小公倍數(shù)(Least Common Multiple,簡稱LCM):指兩個或多個整數(shù)的公倍數(shù)中最小的一個整數(shù)。換句話說,最小公倍數(shù)是能夠被給定整數(shù)整除的最小正整數(shù)。

????????計算最小公倍數(shù)常常用于化簡分?jǐn)?shù)、求解最簡整數(shù)倍等問題。

????????常見的計算最小公倍數(shù)的方法是通過最大公約數(shù)(Greatest Common Divisor,簡稱GCD)來求解。兩個整數(shù)a和b的最小公倍數(shù)等于它們的乘積除以最大公約數(shù)。這是因為兩個整數(shù)的乘積除以最大公約數(shù)等于兩個整數(shù)的公倍數(shù)中的最小值。

????????以下是一個示例代碼,演示如何計算兩個整數(shù)的最小公倍數(shù):

public class LCM {
    public static void main(String[] args) {
        int a = 12;
        int b = 18;

        // 計算最小公倍數(shù)
        int lcm = calculateLCM(a, b);

        // 輸出結(jié)果
        System.out.println("最小公倍數(shù):" + lcm);
    }

    // 計算最小公倍數(shù)
    public static int calculateLCM(int a, int b) {
        int gcd = calculateGCD(a, b);
        int lcm = (a * b) / gcd;
        return lcm;
    }

    // 使用歐幾里得算法計算最大公約數(shù)
    public static int calculateGCD(int a, int b) {
        while (b != 0) {
            int remainder = a % b;
            a = b;
            b = remainder;
        }
        return a;
    }
}

????????在這個示例中,我們先使用歐幾里得算法(GCD)計算出12和18的最大公約數(shù),結(jié)果為6。然后,我們將12和18的乘積除以最大公約數(shù),得到最小公倍數(shù)為36。

????????注意,最小公倍數(shù)可以通過最大公約數(shù)計算得到,因此在計算最小公倍數(shù)之前,需要先計算最大公約數(shù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-800594.html

到了這里,關(guān)于Java入門高頻考查算法邏輯基礎(chǔ)知識3-編程篇(超詳細(xì)18題1.8萬字參考編程實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • Java入門基礎(chǔ)知識

    Java入門基礎(chǔ)知識

    JDK是Java工具開發(fā)包,包含了JVM(程序運行環(huán)境),核心類庫(直接應(yīng)用即可),開發(fā)工具(Javac,java,jdb,jhat…) JRE是Java運行環(huán)境,包含了JVM,核心類庫,運行工具 JDK包含了JRE,JRE包含了jvm 全部小寫(有特定含義的英文字符) class 表示一個類 整數(shù)類型 小數(shù)類型 字符串類型 :只用\\\"雙引

    2024年02月09日
    瀏覽(92)
  • Java基礎(chǔ)入門知識

    以下是學(xué)習(xí)java必備的知識 目錄 前言 一、Java入門 二、基本數(shù)據(jù)類型與數(shù)組 標(biāo)識符與 2. 基本數(shù)據(jù)類型 3. 類型轉(zhuǎn)換運算 4. 運算符 5. 數(shù)組 6.控制結(jié)構(gòu)(與c使用一致) 總結(jié) Java語言是面向?qū)ο缶幊陶Z言,編寫的軟件與平臺無關(guān)。具有語法簡單、面向?qū)ο?、穩(wěn)定、與平臺無

    2024年02月16日
    瀏覽(93)
  • 圖像隱寫綜述(適合小白入門,涉及基礎(chǔ)知識、評價指標(biāo)與前沿算法)

    圖像隱寫綜述(適合小白入門,涉及基礎(chǔ)知識、評價指標(biāo)與前沿算法)

    創(chuàng)作不易,點贊收藏,謝謝!如有交流需要,請關(guān)注微信公眾號“筆名二十七畫生”。 分享有趣知識的公眾號 1.圖像隱寫基礎(chǔ)知識 信息保護(hù)主要有兩種手段: 1.加密技術(shù),是直接對要保護(hù)的數(shù)據(jù)進(jìn)行數(shù)學(xué)變換,并使得未授權(quán)方無法讀取交換的秘密信息。 2.信息隱藏技術(shù),則是將

    2024年02月21日
    瀏覽(52)
  • 理解FPGA的基礎(chǔ)知識——邏輯電路

    理解FPGA的基礎(chǔ)知識——邏輯電路

    FPGA (Field Programmable Gate Aray,現(xiàn)場可編程門陣列)是一種可通過重新編程來實現(xiàn)用戶所需邏輯電路的半導(dǎo)體器件。為了便于大家理解FPGA的設(shè)計和結(jié)構(gòu),我們先來簡要介紹一些邏輯電路的基礎(chǔ)知識。 1.邏輯代數(shù) ? ? 邏輯代數(shù)中的變量稱為邏輯變量,用大寫字母表示。邏輯變量的取

    2024年02月09日
    瀏覽(18)
  • IC驗證必備的數(shù)字電路基礎(chǔ)知識(三):時序邏輯電路

    IC驗證必備的數(shù)字電路基礎(chǔ)知識(三):時序邏輯電路

    參考教材:數(shù)字電路與邏輯設(shè)計(第2版)鄔春明 目錄 1. 邊沿觸發(fā)器(D觸發(fā)器) 2. 時序電路描述/構(gòu)成 3. 時序邏輯電路的功能描述方法 組合邏輯電路掌管了電路中的邏輯運算,基本單元是與或非門。而時序邏輯電路則掌管了電路中數(shù)據(jù)的存儲。觸發(fā)器就是構(gòu)成時序邏輯電路

    2024年02月09日
    瀏覽(18)
  • 【看表情包學(xué)Linux】磁盤基礎(chǔ)知識 | CHS 尋址 | 邏輯扇區(qū) LBA | 索引節(jié)點 inode | 偽刪除 inode bitmap 1→0

    【看表情包學(xué)Linux】磁盤基礎(chǔ)知識 | CHS 尋址 | 邏輯扇區(qū) LBA | 索引節(jié)點 inode | 偽刪除 inode bitmap 1→0

    ????????? ??? 爆笑 Linux? 教程: ????《看表情包學(xué)Linux》 ?? ?? ?本篇博客全站熱榜排名: 9 ?? 寫在前面: 上面我們學(xué)到的所有東西,全部都是在內(nèi)存中的。是不是所有的文件都被打開了呢?不是所有的文件,都被打開的,我們之前研究的是進(jìn)程打開的文件,

    2024年02月16日
    瀏覽(25)
  • Opengl入門基礎(chǔ)-基礎(chǔ)知識

    通過之前的教程,我們已經(jīng)擁有了開發(fā)環(huán)境,但是在真正開發(fā)程序之前,我們首先了解下Opengl的基本概念。 Opengl是什么? 通常網(wǎng)上會說Opengl是一種規(guī)范,一種接口,但是這種說法有點抽象,我們不妨先看看下面這個簡單的gl流程 代碼中可能有人對GLFW_OPENGL_PROFILE這類參數(shù)感到

    2024年02月11日
    瀏覽(21)
  • 計算機(jī)基礎(chǔ)知識(基礎(chǔ)入門小白專屬)

    ?? 作者:小劉在這里 ?? 每天分享云計算網(wǎng)絡(luò)運維課堂筆記,疫情之下,你我素未謀面,但你一定要平平安安,一? 起努力,共赴美好人生! ?? 夕陽下,是最美的,綻放,愿所有的美好,再疫情結(jié)束后如約而至。 目錄 計算機(jī)的發(fā)展史 計算機(jī)的硬件組成 計算機(jī)的分類

    2024年02月08日
    瀏覽(21)
  • 計算機(jī)基礎(chǔ)知識(基礎(chǔ)入門小白專屬)二

    ? ?? 作者:小劉在這里 ?? 每天分享云計算網(wǎng)絡(luò)運維課堂筆記,疫情之下,你我素未謀面,但你一定要平平安安,一? 起努力,共赴美好人生! ?? 夕陽下,是最美的,綻放,愿所有的美好,再疫情結(jié)束后如約而至。 目錄 vmware workstation ?的用法 擴(kuò)展部分

    2024年02月02日
    瀏覽(34)
  • C++ 從零基礎(chǔ)到入門(3)—— 函數(shù)基礎(chǔ)知識

    目錄 一、函數(shù)簡介 1、函數(shù)的作用和目的 2、函數(shù)的基本概念 二、函數(shù)定義與聲明 1、函數(shù)定義的語法和結(jié)構(gòu) 2、函數(shù)原型 三、參數(shù)傳遞 1、值傳遞 2、引用傳遞 3、指針傳遞 4、參數(shù)傳遞的選擇 5.引用傳遞與指針傳遞的區(qū)別 四、返回值 1、返回類型 2、返回語句 在 C++ 中,函數(shù)

    2024年01月21日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包