1.开根号操作
C语言:
#include <math.h> //函数在math.h中
//实现开方操作
double b = sqrt(n);
//实现次方操作
double b = pow(2,3); 2^3
double b = pow(2,0.5); 也可以实现开方
JAVA语言
package chen;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int a = 16;
System.out.println("16的开平方为:" + Math.sqrt(a));
System.out.println("2^3=" + Math.pow(2, 3));
System.out.println("-4绝对值="+Math.abs(-4));
System.out.println("100的对数="+Math.log10(100));
}
}
Python语言
a = 16
a**(1/2) #用** 可以轻松实现开方以及平方操作。
2.建立动态数组
C语言:
类型说明符 * 数组名 = (类型说明符 * )malloc(数组长度 * sizeof(类型说明符));
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int n,i;
int *arr;
printf("请输入所要创建的一维动态数组的长度:");
scanf("%d",&n);
if((arr=(int *)malloc(n*sizeof(int)))==NULL)
{
printf("分配内存空间失败,程序退出!");
return 0;
}
for(i=0;i<n;i++) /*向申请成功的数组中赋值*/
{
arr[i]=i+1;
printf("%d\t",arr[i]);
if(0==(i+1)%4)
printf("\n"); /*一行打印四个元素*/
}
free(arr); /*切记!使用完后记得要释放所申请的空间*/
return 0;
}
Java建立动态数组:
(1)java建立数组(必须要定义数组长度)
1.首先必须先申明数组变量
dataType[] arrayRefVar; //如 double[] doub1;
2.创建数组
arrayRefVar = new dataType[arraySize]; //如 doub1 = new double[6];
可以一步到位
double[] doub1 = new double[6]
double[][] doub2 = new double[2][3]
还可以使用ArrayList实现建立动态数组,既可以申明数据类型,也可以不申明。
ArrayList<Integer> l1 = new ArrayList<Integer> ();
ArrayList l2 = new ArrayList ();
Python来说更简单,直接建立即可:
a = []
3.统计数组中出现次数最多的数
java语言 善于使用Map类 有点像python里的字典
Map map1 = new HashMap(); //不声明键和键值
Map<Integer, Integer> map=new HashMap<Integer, Integer>(); //声明键和键值
/**************************************************************/
package chen;
import java.util.HashMap;
import java.util.Map;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {1,2,3,4,2,1,4,2,5,6,2,1,4,4,4};
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i=0;i<a.length;i++)
{
if (map.get(a[i])==null)
{
map.put(a[i], 1);
}
else
{
map.put(a[i], map.get(a[i])+1);
}
}
int max=0,j=0;
for (int i:map.keySet()) //非常好用的迭代
{
if (map.get(i)>max)
{
max = map.get(i);
j = i;
}
}
System.out.println(j);
}
}
python语言:
l1 = [1,2,3,1,3,2,5,3,7,4,5]
dict1 = {}
for i in range(len(l1)):
if not l1[i] in dict1:
dict1[l1[i]] = 1
else:
dict1[l1[i]] += 1
print(dict1)
Max,sign=0,0
for i in dict1.keys():
if dict1[i] > Max:
Max = dict1[i]
sign = i
print(sign," ",Max)
4.数组排序
python 排序
l1 = [2,3,4,5,1,2]
l1.sort()
Java排序 //我使用的是冒泡法排序
package chen;
import java.util.HashMap;
import java.util.Map;
public class Hello {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] a = {1,2,3,4,2,1,4,2,5,6,2,1,4,4,4};
int more = 0;
for (int i=0;i<a.length;i++)
{
System.out.print(a[i]+" ");
}
for (int i=0;i<a.length-1;i++)
{
for (int j=0;j<a.length-1-i;j++)
{
if (a[j] > a[j+1])
{
more = a[j];
a[j] = a[j+1];
a[j+1] = more;
}
}
more = 0;
}
}
}
5.java实现 第一行输入数组长度,第二行输入操作次数,第三行输入数组,统计数组数字出现次数,后面依次
输入操作数,>0的操作数如果存在次数+1,<0的操作数如果存在次数-1,最后输出次数最大的值(重复就全输出)。
package chen;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Hello {
public static void main(String[] args) {
int sign = 0,count=0; //数组长度,操作次数
Scanner in = new Scanner(System.in);
sign = in.nextInt();
count = in.nextInt();
//构建数组
int[] list = new int[sign];
for (int i=0;i<sign;i++)
{
list[i] = in.nextInt();
}
//统计数组元素出现次数并写成Map形式
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for (int i=0;i<sign;i++)
{
// if (map.get(list[i])==null)
// {
// map.put(list[i], 1);
// }
// else
// map.put(list[i], map.get(list[i])+1);
mod_add(list[i],map);
}
//实现输入判断,>0键值-1,<0键值+1,并取出键出现次数最大值
for (int i=0;i<count;i++)
{
if ((sign=in.nextInt())>0)
{
// if (map.get(sign)==null)
// {
// map.put(sign, 1);
// }
// else
// {
// map.put(sign, map.get(sign)+1);
// }
mod_add(sign,map);
}
else
{
sign = Math.abs(sign);
// if (map.get(sign)==null)
// {
// map.put(sign,-1);
// }
// else
// {
// map.put(sign, map.get(sign)-1);
// }
mod_minus(sign,map);
}
sign = 0;
for (int j:map.keySet())
{
if (sign<map.get(j))
{
sign = map.get(j); //知道出现次数最多值为多少
}
}
for (int j:map.keySet())
{
if (sign==map.get(j))
{
System.out.print(j+" ");
}
}
}
//找出出现最多的值 sign表示键值 count表示键
}
//方法一
public static void mod_add(int a,Map<Integer,Integer> map)
{
if (map.get(a)==null)
{
map.put(a, 1);
}
else
{
map.put(a,map.get(a)+1);
}
}
// 方法二
public static void mod_minus(int a,Map<Integer,Integer> map)
{
if (map.get(a)==null)
{
map.put(a,-1);
}
else
{
map.put(a,map.get(a)-1);
}
}
}