基础算法题

#include<stdio.h>
#include<math.h>
int is_sushu(int num)
{
 int j = 0;
 for (j = 2; j <= sqrt(num); j++)
 {
  if (num%j == 0)
  {
   return 0;
  }
 }
 if (j > sqrt(num))
 {
  return 1;
 }
}
int main()
{
 int n;
 printf("请输入一个数:");
 scanf("%d", &n);
 is_sushu(n);
 if (is_sushu(n) == 1)
 {
  printf("%d是素数", n);
 }
 else
 {
  printf("%d不是素数", n);
 }
  return 0;
}
用函数实现判断是不是瑞年

#include <stdio.h>
int ruinian(int num)
{
 if (num % 4 == 0 && num % 100 != 0 || num % 400 == 0)
 {
  return 1;
 }
 else
 {
  return 0;
 }
}
int main()
{
 int n;
 printf("请输入一年:");
 scanf("%d", &n);
 int ret; 
 ret=ruinian(n);
 if (ret== 1)
 {
  printf("%d是瑞年", n);
 }
 else
 {
  printf("%d不是瑞年", n);
 }
 return 0;
}

用函数实现两个数的交换

#include <stdio.h>
void swap(int* nu1, int* nu2)
{
 int tmp = *nu1;
 *nu1 = *nu2;
 *nu2 = tmp;
}

int main()
{
 int a = 10;
 int b = 20;
 void swap(int* nu1, int* nu2);  
 swap(&a, &b);
 printf("a=%d,b=%d", a, b);
 return 0;
}

时间: 2024-10-14 12:50:02

基础算法题的相关文章

fcc 基础算法题

fcc 基础算法题 fcc Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. function reverseString(str) { var arr =str.split(""); //string.split("");以""分割字符串 并返回新的数组 不改变原字符串 arr.reverse(); //反转数组 返回数组的引用 改变原数组 arr = ar

基础算法题-----百元买百鸡

基础算法题-–百元买百鸡 题目:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 首先来分析一下: 设公鸡为x只,母鸡为y只,小鸡为z只,可的 x+y+z=100 5x+3y+z/3=100 由于每种鸡最少1只,所以公鸡最多能有(100 - 3 - 1) / 5只,母鸡最多能有(100 - 5 - 1) / 3只 至此我们便可以编码实现了 // 买公鸡最大数量 int gongJI = (10

java基础算法题

为了提高自己的代码能力和算法能力,我决定每天学习一道算法题,吸收前辈思想. [程序1] TestRabbit.java 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析:兔子数量的规律为数列:1,1,2,3,5,8,13.....其实就是斐波那契数列  使用递归就可以实现 1 /** 2 * 兔子问题 3 * 2016/5/9 4 * 斐波那契数列求值 5 *题目:古典问题:有一对兔子,

15个使用频率极高的基础算法题(附完整代码)

合并排序,将两个已经排序的数组合并成一个数组,当中一个数组能容下两个数组的全部元素 一般来说,合并两个已经有序的数组.首先是开一个能存的下两个数组的第三个数组,可是题目中已经说了.当中一个数组能所有存的下,显然就不应该浪费空间了. 从前往后扫的话,数据要存在大数组的前头,这样每次要把大数组的元素一次后移一位,显然不是什么好主意,所以我们从后往前存. #include<iostream> #include<cstdlib> using namespace std; int cc[10

15道使用频率极高的基础算法题

1.合并排序,将两个已经排序的数组合并成一个数组,其中一个数组能容下两个数组的所有元素; 合并排序一般的思路都是创建一个更大数组C,刚好容纳两个数组的元素,先是一个while循环比较,将其中一个数组A比较完成,将另一个数组B中所有的小于前一个数组A的数及A中所有的数按顺序存入C中,再将A中剩下的数存入C中,但这里是已经有一个数组能存下两个数组的全部元素,就不用在创建数组了,但只能从后往前面存,从前往后存,要移动元素很麻烦. void MergeArray(int a[], int alen, i

FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)

题目描述: 如果给定的字符串是回文,返回true,反之,返回false.如果一个字符串忽略标点符号.大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文).注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文.函数参数的值可以为"racecar","RaceCar"和"race CAR". 算法: function palindrome(str) { var str_obj = s

FCC JS基础算法题(0):Reverse a String(翻转字符串)

题目描述: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串.你的结果必须得是一个字符串. 算法: function reverseString(str) { // 请把你的代码写在这里 str = str.split("").reverse().join(""); return str; } reverseString("hello"); 原文地址:https://www.cnblogs.com/hume

FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)

题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function factorialize(num) { // 请把你的代码写在这里 var result = 1; for(var i=2;i <= num;i++){ result *= i; } return result; } factorialize(1); 原文地址:https://www.cnblogs.co

链表【基础算法题】

题目一 代码实现 1 package class_03; 2 3 public class Code_07_ReverseList { 4 5 public static class Node { 6 public int value; 7 public Node next; 8 9 public Node(int data) { 10 this.value = data; 11 } 12 } 13 14 public static Node reverseList(Node head) { 1