int函数

Go中多个返回值的技巧

梦想的初衷 提交于 2020-03-05 00:55:02
直接上代码看个例子吧: package main import "fmt" //返回 X+Y 和 X*Y func Computer(X, Y int) (int, int) { return X+Y, X*Y } func main() { x := 10 y := 20 a, b := Computer(x, y) fmt.Printf("%d + %d = %d\n", x, y, a) fmt.Printf("%d * %d = %d\n", x, y, b) } 上面的例子我们可以看到直接返回了两个参数,当然我们也可以命名返回参数的变量, 这个例子里面只是用了两个类型,我们也可以改成如下这样的定义,然后返回的时候不用带上变量名,因为直接在函数里面初始化了: package main import "fmt" //返回 X+Y 和 X*Y func Computer(X, Y int) (add int, multiplied int) { //这里命令返回参数的变量add 和 multiplied add = X+Y multiplied = X*Y return } func main() { x := 10 y := 20 a, b := Computer(x, y) fmt.Printf("%d + %d = %d\n", x, y, a) fmt.Printf("

scala中的zip拉链大全

柔情痞子 提交于 2020-03-05 00:03:09
美图欣赏: 一.zip拉链 使用zip方法把元组的多个值绑在一起,以便后续处理 scala > val arr = Array ( "Jackson" , "Make" , "Plus" ) arr : Array [ String ] = Array ( Jackson , Make , Plus ) scala > val arr2 = Array ( 1 , 2 , 3 ) arr2 : Array [ Int ] = Array ( 1 , 2 , 3 ) scala > arr zip arr2 res0 : Array [ ( String , Int ) ] = Array ( ( Jackson , 1 ) , ( Make , 2 ) , ( Plus , 3 ) ) scala > val arr3 = Array ( 1 , 2 , 3 , 4 , 5 ) arr3 : Array [ Int ] = Array ( 1 , 2 , 3 , 4 , 5 ) //注意:如果两个数组的元素个数不一致,拉链操作后生成的数组的长度为较小的那个数组的元素个数 scala > arr zip arr3 res1 : Array [ ( String , Int ) ] = Array ( ( Jackson , 1 ) , ( Make , 2 ) , ( Plus ,

POJ 1002 487-3279

烂漫一生 提交于 2020-03-04 23:52:10
487-3279 思路:看到这个题,我们可以把它分成两个部分,第一个部分是将数据变为电话号码,第二部分是找出出现次数大于1的电话号码,并且输出。其实,分为两个部分后就不难了,第一部分通过一个函数进行转化,第二部分,利用map容器进行统计。 代码: #include<iostream> #include<map> using namespace std; char str[1001]; int sum = 0; int fun(){ int i, k = 0; sum = 0; for (i = 0; k < 7; i++){ if (str[i] >= '0'&&str[i] <= '9'){ sum = sum * 10 + str[i] - '0'; k++; } if (str[i] >= 'A'&&str[i] <= 'Z'){ sum = sum * 10 + ((str[i] - 'A' - (str[i]>'Q')) / 3 + 2); k++; } } return sum; } int main(){ map<int, int>m; int n; cin >> n; getchar(); for (int i = 0; i < n; i++){ gets(str); m[fun()]++; } bool flag = false; map<int, int>:

Java定积分计算

荒凉一梦 提交于 2020-03-04 22:35:22
运用了Java lambda 表达式 简单版本,仅供参考 import java . util . function . UnaryOperator ; public class DefiniteIntegral { /** * 函数 */ private UnaryOperator < Double > function ; /** * 积分的范围 */ private DoubleRange range ; /** * 积分的精度 */ private int precision ; public DefiniteIntegral ( UnaryOperator < Double > function , DoubleRange range , int precision ) { this . function = function ; this . range = range ; this . precision = precision ; } public static DefiniteIntegral create ( UnaryOperator < Double > function , DoubleRange range , int precision ) { return new DefiniteIntegral ( function , range ,

1337. 方阵中战斗力最弱的 K 行

喜欢而已 提交于 2020-03-04 22:29:03
模拟 矩阵从小到大排序,当1的数字相同时,索引小的行排在前面,所以在矩阵的最后一列增加一个当前所在行的所以,直接用vector内置的比较函数进行比较。最后统计结果时,直接返回最后一行的索引。 class Solution { public : vector < int > kWeakestRows ( vector < vector < int >> & mat , int k ) { int m = mat . size ( ) ; if ( ! m ) return { } ; int n = mat [ 0 ] . size ( ) ; for ( int i = 0 ; i < m ; i ++ ) mat [ i ] . push_back ( i ) ; sort ( mat . begin ( ) , mat . end ( ) ) ; vector < int > res ; for ( int i = 0 ; i < k ; i ++ ) { res . push_back ( mat [ i ] [ n ] ) ; } return res ; } } ; 来源: CSDN 作者: 姚军博客 链接: https://blog.csdn.net/SYaoJun/article/details/104651021

不用加减乘除做加法

荒凉一梦 提交于 2020-03-04 19:14:43
题目:写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 思路:只能用位运算。。。模仿十进制的计算步骤。比如计算5+7,5-101,7-111。第一步相加各位,不算进位,得010,二进制每位相加就是^操作,第二步计算进位值,得到1010,相当于各位与再左移一位,(101&111)<<1,重复前两步,直到进位值为0 public int Add(int num1,int num2) { if(num1==0) return num2; return Add((num1&num2)<<1,num1^num2); } 来源: https://www.cnblogs.com/team42/p/6691775.html

不用加减乘除做加法

别说谁变了你拦得住时间么 提交于 2020-03-04 19:14:20
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。 提交链接: 点击 思路:k进制的加法的本质就是每位相加,如果数满k,则进行进位。   1.两个数异或,相当于每一位相加,没有进行进位    2.两个数相与再左移移位,相当于求得进位。 代码: //通过异或和与、移位操作 class Solution { public: int Add(int num1, int num2) { while(num1){ int temp = num1^num2; num1 = (num1&num2)<<1; num2= temp; } return num2; } 来源: https://www.cnblogs.com/logo-88/p/9937687.html

Go 程序员的演变,最后的 “Rob Pike” 这个梗看懂了吗?

╄→гoц情女王★ 提交于 2020-03-04 17:18:33
通过一个阶乘函数的不同写法将 Go 程序员进行划分。 初级 Go 程序员 package fac func Factorial (n int ) int { res := 1 for i := 1 ; i <= n; i++ { res *= i } return res } 函数式 Go 程序员 package fac func Factorial (n int ) int { if n == 0 { return 1 } else { return Factorial(n - 1 ) * n } } 泛型 Go 程序员 package fac func Factorial (n interface {}) interface {} { v, valid := n.( int ) if !valid { return 0 } res := 1 for i := 1 ; i <= v; i++ { res *= i } return res } 多线程优化的 Go 程序员 package fac import "sync" func Factorial (n int ) int { var ( left, right = 1 , 1 wg sync.WaitGroup ) wg.Add( 2 ) pivot := n / 2 go func () { for i := 1 ; i

Codeforces 1305F. Kuroni and the Punishment

。_饼干妹妹 提交于 2020-03-04 16:23:37
原题链接: https://codeforces.com/contest/1305/problem/F 随机数过题法,记录一下。clock函数和mt19937学到了。 //#pragma GCC optimize(3) #include <bits/stdc++.h> typedef long long ll; using namespace std; typedef pair<int,int> pp; const int N=2e5+5; const int mod=1e9+7; const int inf=0x3f3f3f3f; mt19937 rnd(time(0)); ll a[N]; ll ans=0x3f3f3f3f3f3f3f3f; int n; void solve(ll x) { ll res=0; for(int i=0;i<n;i++){ if(a[i]<x)res+=x-a[i]; else res+=min(a[i]%x,x-a[i]%x); } //cout<<x<<" "<<res<<endl; ans=min(ans,res); } ll p[N],cnt; void work(ll x) { cnt=0; for(ll i=2;i*i<=x;i++){ if(x%i==0)solve(i); while(x%i==0)x/=i; } if(x!=1

HDU4004——The Frog's Games

╄→гoц情女王★ 提交于 2020-03-04 15:28:43
http://acm.hdu.edu.cn/showproblem.php?pid=4004 这道题讲的是青蛙在限定步骤之内跳过河,所以判断最小的每次跳的步长。 思路理解:找到每块石头之间的最大值为石头最小步长,最大值当然就是河宽了。所以剩下了就是用二分枚举了。 //我烦的一个错误就是sort函数是从0-n(sort(a,a+n);); #include<stdio.h> #include<iostream> #include<cstring> #include<cmath> #include<algorithm> using namespace std; //L河的宽度, N个石头,至多m次跳跃 1000000000 //查找一个【所有石头间最短句,河的宽度】 //通过二分查找找到中间值,当不符合的时候,那么比他小的值就跟不符合了!! //就放在向右的界限里。 bool binarySearch(int a[],int left,int right); bool panduan(int mid); int a[500003],k,L,n,m; int main(){ while(~scanf("%d%d%d",&L,&n,&m)){ a[0]=0; for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } sort(a+1,a+n+1);//1