JAVA编程_11-16_读数字(switch练习)/求素数 /毕业聚会/冒泡算法/选择排序 / 输入单词倒置

部署运行你感兴趣的模型镜像

11_读数字(switch练习)

输入一个整数,输出每个数字对应的拼音。只处理正数。十个数字对应的拼音如下:

0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu

注意:使用Scanner sc=new Scanner(System.in)来处理读入整数,需要使用的方法为sc.nextInt()。 。

输入格式:

先输入整数的个数,然后挨个输入整数。

输出格式:

在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。

输入样例:

在这里给出一组输入。例如:

5
1 3 4 5 6

结尾无空行

输出样例:

在这里给出相应的输出。例如:

yi san si wu liu

结尾无空行

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int a[]=new int[n],i;
        for(i=0;i<n;i++){
            a[i]=sc.nextInt();
        }
        //for(i=0;i<n;i++){
           // System.out.print(a[i]);
       // }
        for(i=0;i<n-1;i++){
            switch(a[i]){
                    case 0: System.out.print("ling ");break;
                    case 1: System.out.print("yi ");break;
                    case 2: System.out.print("er ");break;
                    case 3: System.out.print("san ");break;
                    case 4: System.out.print("si ");break;
                    case 5: System.out.print("wu ");break;
                    case 6: System.out.print("liu ");break;
                    case 7: System.out.print("qi ");break;
                    case 8: System.out.print("ba ");break;
                    case 9: System.out.print("jiu ");break;
            }
        }
        switch(a[i]){
                    case 0: System.out.print("ling");break;
                    case 1: System.out.print("yi");break;
                    case 2: System.out.print("er");break;
                    case 3: System.out.print("san");break;
                    case 4: System.out.print("si");break;
                    case 5: System.out.print("wu");break;
                    case 6: System.out.print("liu");break;
                    case 7: System.out.print("qi");break;
                    case 8: System.out.print("ba");break;
                    case 9: System.out.print("jiu");break;
            }
    }
}

12_求素数

输入一个整数,求该整数范围内的所有素数。

输入格式:

输入一个正整数。

输出格式:

一行5个素数,每两个之间用制表符(“\t”)间隔。如果最后一行不是5个数字,那么最后一个数字后面有一个制表符。

输入样例:

在这里给出一组输入。例如:

100

结尾无空行

输出样例:

在这里给出相应的输出。例如:

2	3	5	7	11
13	17	19	23	29
31	37	41	43	47
53	59	61	67	71
73	79	83	89	97

结尾无空行

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int i,cnt=0;
        for(i=2;i<n;i++){
            if(sushu.s(i)){
                cnt++;
                if(cnt%5!=0)
                    System.out.print(i+"\t");
                else 
                    System.out.print(i);
                if(cnt%5==0)
                    System.out.println();
            }
            
        }
    }
    
}
class sushu{
    static boolean s(int a){
        if(a<=1){
            return false;
        }
        else{
            for(int i=2;i<a;i++){
                if(a%i==0)return false;
            }
        }
        return true;
    }
}

 13_毕业聚会 

毕业在即,三位小伙伴马上要分别。为了在未来的某个日子可以见面,三位小伙伴有了一个约定,假设在未来的某一年,三位小伙伴的年龄的末尾正好出现3、6、9三个数,那么他们会再次相聚。

现在问题来了,假设今年三位小伙伴的年龄分别是x,y,z,那么,他们三人最早几年后可以相聚呢?

输入格式:

输入数据包括三个整数x,y,z,分别表示三位伙伴的年龄。

输出格式:

如果小伙伴最早在n年后可以相见(不包括当前这一年),那么请输出这个n;如果100年内都不存在这样的情况,输出:so sad!

输入样例:

在这里给出一组输入。例如:

25 22 28

结尾无空行

输出样例:

在这里给出相应的输出。例如:

1

结尾无空行

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int x=sc.nextInt(),y=sc.nextInt(),z=sc.nextInt();
        int fx=0,fy=0,fz=0,flag6=0,cnt=0;
        int i=0,flag9=0,flag3=0;
        while(flag3==0||flag6==0||flag9==0){
            flag3=0;
            flag6=0;
            flag9=0;
            x++;y++;z++;cnt++;
            fx=x;fy=y;fz=z;
            if(fx%10==3||fy%10==3||fz%10==3){
                flag3++;
            }
            if(fx%10==6||fy%10==6||fz%10==6){
                flag6++;
            }
            if(fx%10==9||fy%10==9||fz%10==9){
                flag9++;
            }
            if(cnt>100)
                break;
        }
        if(cnt<=100)System.out.print(cnt);
        else System.out.print("so sad!");
    }
}

 14_冒泡算法(打出中间过程)

冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。请完成8个整数的冒泡排序,并打印出中间过程。

打印代码如下:
class printTools{
    static int n;
    public static void PrintArray(int a[]){
        n=a.length;
        for(int i=0;i<=a.length-1;i++){
            if(i==0){
                System.out.print(a[i]);
            }
            else{
                System.out.print(" "+a[i]);
            }
        }
        System.out.println();
    }
}

输入格式:

8个整数。

输出格式:

8个中间过程

输入样例:

13 2 8 7 5 3 4 1

结尾无空行

输出

2 8 7 5 3 4 1 13
2 7 5 3 4 1 8 13
2 5 3 4 1 7 8 13
2 3 4 1 5 7 8 13
2 3 1 4 5 7 8 13
2 1 3 4 5 7 8 13
1 2 3 4 5 7 8 13

结尾无空行

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner(System.in);
        int a[]=new int[8];
        for(int i=0;i<8;i++){
            a[i]=sc.nextInt();
        }
        int j,temp,i,k;
        for(i=0;i<7;i++){
            for(j=0;j<7;j++){
                if(a[j]>a[j+1]){
                    temp=a[j];
                    a[j]=a[j+1];
                    a[j+1]=temp;
                }
            }
            for(k=0;k<8;k++){
                if(k!=7)
                System.out.print(a[k]+" ");
                else
                    System.out.print(a[k]);
            }
            System.out.println();
        }
    }
}

15_选择排序 

选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 请完成8个整数的选择排序,并打印出中间过程。

打印代码如下:
class printTools{
    static int n;
    public static void PrintArray(int a[]){
        n=a.length;
        for(int i=0;i<=a.length-1;i++){
            if(i==0){
                System.out.print(a[i]);
            }
            else{
                System.out.print(" "+a[i]);
            }
        }
        System.out.println();
    }
}

输入格式:

8个整数。

输出格式:

8个中间过程

输入样例:

8 7 6 5 4 3 2 1

结尾无空行

输出样例:

1 7 6 5 4 3 2 8
1 2 6 5 4 3 7 8
1 2 3 5 4 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8

结尾无空行

import java.util.*;
public class Main{
    public static void main(String args[]){
        Scanner sc=new Scanner (System.in);
        int a[]=new int[8],i,j,min=0,k=0,tmp=0,q=0;
        for(i=0;i<8;i++){
            a[i]=sc.nextInt();
        }
        for(i=0;i<8;i++){
            min=a[i];
            q=i;
            for(j=i;j<8;j++){
                if(min>a[j]){
                    min=a[j];
                    q=j;
                }
                    
            }
            tmp=a[i];
            a[i]=min;
            a[q]=tmp;
            for(k=0;k<8;k++){
                if(k!=7)
                    System.out.print(a[k]+" ");
                else 
                    System.out.println(a[k]);
                
            }
        }
    }
}

 16_输入单词倒置 

通过键盘输入几个单词,每个单词以空格分开。然后从最后一个单词开始,挨个输出每个单词。输出时每个单词之间有一个空格,最后一个单词后面没有空格。

输入样例:

I love Java

结尾无空行

输出样例:

Java love I

结尾无空行

import java.util.*;
public class Main{
    public static void main(String ags[]){
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();
        int t[]=new int[10];
        t[0]=0;
        int i=0,j=1;
        for(i=0;i<str.length();i++){
            if(str.charAt(i)==' '){
                t[j++]=i+1;
            }
        }
        j--;
        /*for(int o:t){
            System.out.print(o);
        }*/
        while(j>=0){
            for(i=t[j];i<str.length();i++){
                if(str.charAt(i)==' ')break;
                System.out.print(str.charAt(i));
            }
            if(j!=0)
                System.out.print(" ");
            j--;
        }
    }
}

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> #include <ctype.h> #include <limits.h> //宏: //宏:定义 #define EPS 1e-9 #define MOD 100000000 //宏:类型 #define in int #define ll long long #define fl float #define db double #define ch char #define vd void //宏:函数 #define sc scanf #define pr printf //宏:其他 #define rt return //宏:输入 #define sc_in(x) sc("%d", &(x)) #define sc_ll(x) sc("%lld", &(x)) #define sc_db(x) sc("%lf", &(x)) #define sc_ch(x) sc("%c", &(x)) #define sc_st(str) sc("%s", (str)) //宏:输出(无换行) #define pr_in(x) pr("%d", x) #define pr_ll(x) pr("%lld", x) #define pr_ch(x) pr("%c", x) #define pr_st(x) pr("%s", x) //宏:输出(有换行) #define pr_inn(x) pr("%d\n", x) #define pr_lln(x) pr("%lld\n", x) #define pr_chn(x) pr("%c\n", x) #define pr_stn(x) pr("%s\n", x) //宏:功能 //浮点相等判断 #define CEPS(a, b) (fabs((a) - (b)) < EPS) //数组长度获取 #define ArrayNum(x) (sizeof(x)/sizeof(x[0])) //函数声明: //函数声明:输入输出辅助 //要快速输入 in fast_read(); //要数组输入(一维) vd scan_arr1(in arr[], in n); //要数组输出(一维) vd print_arr1(in arr[], in n); //要数组输入(二维) vd scan_arr2(in arr[][100], in row, in col); //要数组输出(二维) vd print_arr2(in arr[][100], in row, in col); //函数声明:数学计算 //某个数的阶乘(非递归) ll factorial1(in n); //某个数的阶乘(递归) ll factorial2(in n); //斐波那契数列第某个数(非递归) ll fibonacci1(in n); //斐波那契数列第某个数(递归) ll fibonacci2(in n); //斐波那契数列第某个数(递归+优化) ll fibonacci2_memo(in n); //排列数P(n数,排k) ll permute(in n, in k); //组合数C(n数,组k) ll combine(in n, in k); //快速幂(模幂运算) ll pow_mod(ll base, ll exp); //两个数的最大公因数 in gcd(in a, in b); //两个数的最小公倍数 in lcm(in a, in b); //某个数是否为素数 in is_prime(in n); //某个数是否为2的自然数幂 in is_power_2(in x); //10进制转<10进制(待拓展) in digit_change(in n, in digit2); //2进制数转10进制数 in bin_to_dec(in bin); //任意进制转换(2~36)(数组m存储结果) in char_to_value(ch c); ch value_to_char(in val); in convert_base(const ch* n, in a, in b, ch m[]); //某个数字的反向输出 in reverse_digits(in n); //函数声明:字符串处理 //某个数(字符串形式)是否为回文 in is_palindrome(const ch* s); //某个字符串的倒置 vd reverse_string(ch* str); //某数是否含某数字(一般数) in contains_digit1(in n, in p); //某数是否含某数字(超大数,%s输入num_str) in contains_digit2(const ch* num_str, in p); //给定字符串出现频次 vd string_frequency(const ch* str); //函数声明:数组处理 //某十进制数的各位数 vd extract_digits(in num, in digits[]); //函数声明:排序搜索 //要两个整数交换 vd swap(in* a, in* b); //要升序排列(冒泡排序) vd bubble_sort(in* arr, size_t n); //要升序排列(快速排序1到r) vd quick_sort(in arr[], in l, in r); //要全排数组(start到end) vd permute_arr(in arr[], in start, in end); //要翻转数组 vd reverse_arr(in arr[], in n); //数组某元素的位置(升序,n元,二分找x) in binary_search(in arr[], in n, in x); //区间上零点的位置(单零点,二分,循环) db binary_solve1(db low, db high); //区间上零点的位置(单零点,二分,递归) db binary_solve2(db low, db high); //数组各元素的和 in sum_arr(in arr[], in n); //数组最大元素下标 in max_index(in arr[], in n); //函数声明:几何计算 //平面上两点的距离 db distance_2d(db x1, db y1, db x2, db y2); //三角形的面积(2倍) ll triange_area_2(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3); //凸多边形面积(2倍) ll n_triangle_area_2(in n, ll x[], ll y[]); //函数声明:时间日期 //某年是否为闰年 in is_leap(in year); //某年某月的天数 in get_days_of_month(in year, in month); //某年某月某日为星期几 in get_week_day(in year, in month, in day); //函数实现: //函数实现:输入输出辅助 //要快速输入 in fast_read() { in x = 0, f = 1; ch c = getchar(); while (c < '0' || c > '9') { if (c == '-') f = -f; c = getchar(); } while (c >= '0' && c <= '9') { x = x * 10 + c - '0'; c = getchar(); } return x * f; } //要数组输入(一维) vd scan_arr1(in arr[], in n) { for (in i = 0; i < n; i++) { sc("%d", &arr[i]); } } //要数组输出(一维) vd print_arr1(in arr[], in n) { for (in i = 0; i < n; i++) { pr("%d ", arr[i], " \n"[i == n - 1]); } } //要数组输入(二维) vd scan_arr2(in arr[][100], in row, in col) { for (in i = 0; i < row; i++) { for (in j = 0; j < col; j++) { while ((sc_in(arr[i][j])) != 1) { while (getchar() != ' '); } } } } //要数组输出(二维) vd print_arr2(in arr[][100], in row, in col) { for (in i = 0; i < row; i++) { for (in j = 0; j < col; j++) { pr("%d ", arr[i][j]); } pr("\n"); } } //函数实现:数学计算 //某个数的阶乘(非递归) ll factorial1(in n) { if (n < 0) return -1; if (n > 20) return -1; ll result = 1; for (in i = 2; i <= n; i++) { result *= i; } return result; } //某个数的阶乘(递归) ll factorial2(in n) { if (n <= 1) { return 1; } return n * factorial2(n - 1); } //斐波那契数列第某个数(非递归) ll fibonacci1(in n) { if (n == 0) return 0; if (n == 1) return 1; ll prev = 0; ll curr = 1; ll next; for (in i = 2; i <= n; i++) { next = prev + curr; prev = curr; curr = next; } return curr; } //斐波那契数列第某个数(递归) ll fibonacci2(in n) { if (n == 0) { return 0; } else if (n == 1 || n == 2) { return 1; } return fibonacci2(n - 1) + fibonacci2(n - 2); } //斐波那契数列第某个数(递归+优化) ll memo[1000] = { 0 }; ll fibonacci2_memo(in n) { if (n == 1 || n == 2) { return 1; } if (memo[n] != 0) { return memo[n]; } memo[n] = fibonacci2_memo(n - 1) + fibonacci2_memo(n - 2); return memo[n]; } //排列数P(n数,排k) ll permute(in n, in k) { if (k < 0 || n < 0 || k > n) { return -1; } ll result = 1; for (in i = n - k + 1; i <= n; i++) { result *= i; } return result; } //组合数C(n数,组k) ll combine(in n, in k) { if (k < 0 || n < 0 || k > n) { return -1; } if (k > n - k) { k = n - k; } ll result = 1; for (in i = 0; i < k; i++) { result = result * (n - i) / (i + 1); } return result; } //快速幂(模幂运算) ll pow_mod(ll base, ll exp) { ll result = 1; while (exp > 0) { if (exp & 1) { result = (result * base) % MOD; } base = (base * base) % MOD; exp >>= 1; } return result; } //两个数的最大公因数 in gcd(in a, in b) { if (a < 0) a = -a; if (b < 0) b = -b; while (b != 0) { in temp = b; b = a % b; a = temp; } return a; } //两个数的最小公倍数 in lcm(in a, in b) { return a / gcd(a, b) * b; } //某个数是否为素数 in is_prime(in n) { if (n <= 1) { return 0; } else if (n <= 3) { return 1; } else if (n % 2 == 0 || n % 3 == 0) { return 0; } for (in i = 5; i * i <= n; i += 6) { if (n % i == 0 || n % (i + 2) == 0) { return 0; } } return 1; } //某个数是否为2的自然数幂 in is_power_2(in x) { return x > 0 && (x & (x - 1)) == 0; } //10进制转<10进制(待拓展) in digit_change(in n, in digit2) { in rem = n; in mod[100]; in i = 0; while (rem > 0) { mod[i] = rem % digit2; rem = rem / digit2; i++; } in result = 0; in ten = 1; for (in j = 0; j < i; j++) { result += mod[j] * ten; ten = 10 * ten; } return result; } //2进制数转10进制数 in bin_to_dec(in bin) { if (bin == 0) { return 0; } if (bin < 0) { return -1; } in decimal = 0; in base = 1; while (bin > 0) { in digit = bin % 10; if (digit != 0 && digit != 1) { return -1; } decimal += digit * base; base *= 2; bin /= 10; } return decimal; } //任意进制转换(2~36)(数组m存储结果) in char_to_value(ch c) { if (isdigit(c)) return c - '0'; if (isupper(c)) return c - 'A' + 10; if (islower(c)) return c - 'a' + 10; return -1; } ch value_to_char(in val) { if (val < 10) return '0' + val; return 'A' + val - 10; } in convert_base(const ch* n, in a, in b, ch m[]) { if (!n || !m || a < 2 || a > 36 || b < 2 || b > 36) { m[0] = '\0'; return -1; } in len = strlen(n); if (len == 0) { m[0] = '0'; m[1] = '\0'; return 0; } ll decimal = 0; for (in i = 0; i < len; i++) { in val = char_to_value(n[i]); if (val == -1 || val >= a) { m[0] = '\0'; return -1; } decimal = decimal * a + val; } if (decimal == 0) { m[0] = '0'; m[1] = '\0'; return 0; } ch temp[65]; in idx = 0; while (decimal > 0) { in r = decimal % b; temp[idx++] = value_to_char(r); decimal /= b; } temp[idx] = '\0'; for (in i = 0; i < idx; i++) { m[i] = temp[idx - 1 - i]; } m[idx] = '\0'; return 0; } //某个数字的反向输出 in reverse_digits(in n) { in digits[10] = { 0 }; in i = 0; in num = n; while (num > 0) { digits[i++] = num % 10; num /= 10; } in ans = 0; for (in j = 0; j < i; j++) { ans = ans * 10 + digits[j]; } return ans; } //函数实现:字符串处理 //某个数(字符串形式)是否为回文 in is_palindrome(const ch* s) { if (s == NULL) { return 0; } in left = 0; in right = strlen(s) - 1; while (left < right) { if (tolower(s[left]) != tolower(s[right])) { return 0; } left++; right--; } return 1; } //某个字符串的倒置 vd reverse_string(ch* str) { if (str == NULL) { return; } in left = 0; in right = strlen(str) - 1; ch temp; while (left < right) { temp = str[left]; str[left] = str[right]; str[right] = temp; left++; right--; } } //某数是否含某数字(一般数) in contains_digit1(in n, in p) { ch str[50]; ch target = '0' + p; sprintf(str, "%d", n); for (in i = 0; str[i] != '\0'; i++) { if (str[i] == target) { return 1; } } return 0; } //某数是否含某数字(超大数,%s输入num_str) in contains_digit2(const ch* num_str, in p) { ch target = '0' + p; for (in i = 0; num_str[i] != '\0'; i++) { if (num_str[i] < '0' || num_str[i] > '9') { continue; } if (num_str[i] == target) { return 1; } } return 0; } //给定字符串出现频次 vd string_frequency(const ch* str) { in freq[128] = { 0 }; for (in i = 0; str[i] != '\0'; i++) { unsigned ch c = str[i]; if (c == ' ' || isprint(c)) { freq[c]++; } } int count = 0; for (in i = 0; i < 128; i++) { if (freq[i] > 0) { count++; if (i == ' ') { pr("blank: %d\n", freq[i]); } else { pr("'%c': %d\n", i, freq[i]); } } } } //函数实现:数组处理 //某十进制数的各位数 vd extract_digits(in num, in digits[]) { if (num == 0) { digits[0] = 0; digits[1] = -1; return; } in i = 0; while (num > 0) { digits[i++] = num % 10; num /= 10; } } //函数实现:排序搜索 //要两个整数交换 vd swap(in* a, in* b) { in temp = *a; *a = *b; *b = temp; } //要升序排列(冒泡排序) vd bubble_sort(in* arr, size_t n) { if (arr == NULL || n < 2) { return; } for (size_t i = 0; i < n - 1; i++) { in swapped = 0; for (size_t j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { in temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; swapped = 1; } } if (!swapped) { break; } } } //要升序排列(快速排序1到r) vd quick_sort(in arr[], in l, in r) { if (l >= r) { return; } in i = l, j = r; in pivot = arr[(l + r) / 2]; while (i <= j) { while (arr[i] < pivot) i++; while (arr[j] > pivot) j--; if (i <= j) { swap(&arr[i], &arr[j]); i++; j--; } } quick_sort(arr, l, j); quick_sort(arr, i, r); } //要全排数组(start到end) vd permute_arr(in arr[], in start, in end) { if (start == end) { for (in i = 0; i <= end; i++) { pr("%d ", arr[i]); } pr("\n"); } else { for (in i = start; i <= end; i++) { swap(&arr[start], &arr[i]); permute_arr(arr, start + 1, end); swap(&arr[start], &arr[i]); } } } //要翻转数组 vd reverse_arr(in arr[], in n) { for (in i = 0; i < n / 2; i++) { in t = arr[i]; arr[i] = arr[n - 1 - i]; arr[n - 1 - i] = t; } } //数组某元素的位置(升序,n元,二分找x) in binary_search(in arr[], in n, in x) { in left = 0, right = n - 1; while (left <= right) { in mid = (left + right) / 2; if (arr[mid] == x) { return mid; } else if (arr[mid] < x) { left = mid + 1; } else right = mid - 1; } return -1; } //区间上零点的位置(单零点,二分,循环) db f1(db x) { return sin(x); } db binary_solve1(db low, db high) { db mid; while (high - low >= EPS) { mid = low + (high - low) / 2; f1(mid) > 0 ? (high = mid) : (low = mid); } return low + (high - low) / 2; } //区间上零点的位置(单零点,二分,递归) db f2(db x) { return sin(x); } db binary_solve2(db low, db high) { db mid = low + (high - low) / 2; if (high - low < EPS) { return mid; } else if (f2(mid) > 0) { return binary_solve2(low, mid); } else { return binary_solve2(mid, high); } } //数组各元素的和 in sum_arr(in arr[], in n) { in s = 0; for (in i = 0; i < n; i++) { s += arr[i]; } return s; } //数组最大元素下标 in max_index(in arr[], in n) { in idx = 0; for (in i = 1; i < n; i++) { if (arr[i] > arr[idx]) { idx = i; } } return idx; } //函数实现:几何计算 //平面上两点的距离 db distance_2d(db x1, db y1, db x2, db y2) { db dx = x2 - x1; db dy = y2 - y1; return sqrt(dx * dx + dy * dy); } //三角形的面积(2倍) ll triange_area_2(ll x1, ll y1, ll x2, ll y2, ll x3, ll y3) { ll area_2 = (x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1); return area_2 < 0 ? -area_2 : area_2; } //凸多边形面积(2倍) ll n_triangle_area_2(in n, ll x[], ll y[]) { ll area_2 = 0; for (in i = 0; i < n; i++) { in j = (i + 1) % n; area_2 += x[i] * y[j] - x[j] * y[i]; } return area_2 > 0 ? area_2 : -area_2; } //函数实现:时间日期 //某年是否为闰年 in is_leap(in year) { return (year % 4 == 0) && (year % 100 != 0) || (year % 400 == 0); } //某年某月的天数 in get_days_of_month(in year, in month) { in days = 0; switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: days = is_leap(year) ? 29 : 28; break; } return days; } //某年某月某日为星期几 in get_week_day(in year, in month, in day) { in century, weekday; if (month < 3) { year--; month += 12; } century = year / 100; year %= 100; weekday = (year + year / 4 + century / 4 - 2 * century + (26 * (month + 1)) / 10 + day - 1) % 7; if (weekday < 0) { weekday += 7; } return weekday; }优化下界面方便我检索
最新发布
11-05
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值