2024年C C++最全人工智能写的十段代码,九个通过测试了_ai人工智能编程代码(1),2024年最新C C++studio基础

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上C C++开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

for (int i = 0; i < size; i++)
{
    cout << arr[i] << " ";
}
return 0;

}


#### 4. 零尾数个数


如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?请用C代码实现


5650 4542 3554 473 946 4114 3871 9073 90 4329  
 2758 7949 6113 5659 5245 7432 3051 4434 6704 3594  
 9937 1173 6866 3397 4759 7557 3070 2287 1453 9899  
 1486 5722 3135 1170 4014 5510 5120 729 2880 9019  
 2049 698 4582 4346 4427 646 9742 7340 1230 7683  
 5693 7015 6887 7381 4172 4341 2909 2027 7355 5649  
 6701 6645 1671 5978 2704 9926 295 3125 3878 6785  
 2066 4247 4800 1578 6652 4616 1113 6205 3264 2915  
 3966 5291 2904 1285 2193 1428 2265 8730 9436 7074  
 689 5510 8243 6114 337 4096 8199 7313 3685 211



#include <stdio.h>
int main()
{
int a[10][10] = {
{5650, 4542, 3554, 473, 946, 4114, 3871, 9073, 90, 4329},
{2758, 7949, 6113, 5659, 5245, 7432, 3051, 4434, 6704, 3594},
{9937, 1173, 6866, 3397, 4759, 7557, 3070, 2287, 1453, 9899},
{1486, 5722, 3135, 1170, 4014, 5510, 5120, 729, 2880, 9019},
{2049, 698, 4582, 4346, 4427, 646, 9742, 7340, 1230, 7683},
{5693, 7015, 6887, 7381, 4172, 4341, 2909, 2027, 7355, 5649},
{6701, 6645, 1671, 5978, 2704, 9926, 295, 3125, 3878, 6785},
{2066, 4247, 4800, 1578, 6652, 4616, 1113, 6205, 3264, 2915},
{3966, 5291, 2904, 1285, 2193, 1428, 2265, 8730, 9436, 7074},
{689, 5510, 8243, 6114, 337, 4096, 8199, 7313, 3685, 211}
};
int result = 1;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
result *= a[i][j];
}
}
int count = 0;
while (result % 10 == 0) {
count++;
result /= 10;
}
printf(“The number of zeros at the end of the product is %d.\n”, count);
return 0;
}


粗看原理好像是对的,先全部相乘再循环计数。可惜实现不了,所有整数相乘肯定会溢出了。


#### 5. 四数之和


给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满足条件且不重复的四元组,用python代码实现。



def fourSum(nums, target):
res = []
nums.sort()
for i in range(len(nums)-3):
if i > 0 and nums[i] == nums[i-1]:
continue
for j in range(i+1, len(nums)-2):
if j > i+1 and nums[j] == nums[j-1]:
continue
l, r = j+1, len(nums)-1
while l < r:
s = nums[i] + nums[j] + nums[l] + nums[r]
if s == target:
res.append([nums[i], nums[j], nums[l], nums[r]])
while l < r and nums[l] == nums[l+1]:
l += 1
while l < r and nums[r] == nums[r-1]:
r -= 1
l += 1
r -= 1
elif s < target:
l += 1
else:
r -= 1
return res


#### 6. 字符串编码


问题描述  
 小明发明了一种给由全大写字母组成的字符串编码的方法。  
 对于每一个大写字母,小明将它转换成它在 26 个英文字母中序号,即 A → 1, B → 2, … Z →26。  
 这样一个字符串就能被转化成一个数字序列:比如 ABCXYZ → 123242526。  
 现在给定一个转换后的数字序列,小明想还原出原本的字符串。  
 当然这样的还原有可能存在多个符合条件的字符串。  
 小明希望找出其中字典序最大的字符串。  
 请用C++代码来实现:


输入格式  
 一个数字序列。


输出格式  
 一个只包含大写字母的字符串,代表答案


样例输入  
 123242526  
 样例输出  
 LCXYZ



#include
#include
#include
using namespace std;
int main() {
string s;
cin >> s;
string ans = “”;
for (int i = 0; i < s.length(); i++) {
int num = s[i] - ‘0’;
char c = ‘A’ + num - 1;
ans += c;
}
sort(ans.begin(), ans.end(), greater());
cout << ans << endl;
return 0;
}


测试错误,输入123242526 输出 FEDCBBBBA。你能找出错在哪里吗?


写一段正确的参考代码,如下:



#include <bits/stdc++.h>
using namespace std;

int main()
{
string in;
string re = “”;
cin >> in;
int len = in.length();

in = in + 'Z';
for (int i = 0; i < len;)
{
    int temp = int(in[i] - '0') * 10 + int(in[i + 1] - '0');
    if (temp > 26)
    {
        re = re + char(in[i] - '0' + 'A' - 1);
        i++;
    }
    else
    {
       re = re+char(temp + 'A' - 1);
	   i += 2;
    }
}
cout << re;
return 0;

}


#### 7. 请给出七大排序算法的python代码。



#1. 冒泡排序:
def bubble_sort(nums):
for i in range(len(nums)-1):
for j in range(len(nums)-i-1):
if nums[j] > nums[j+1]:
nums[j], nums[j+1] = nums[j+1], nums[j]
return nums

#2. 选择排序:
def selection_sort(nums):
for i in range(len(nums)-1):
min_index = i
for j in range(i+1, len(nums)):
if nums[j] < nums[min_index]:
min_index = j
nums[i], nums[min_index] = nums[min_index], nums[i]
return nums

#3. 插入排序:
def insertion_sort(nums):
for i in range(1, len(nums)):
j = i
while j > 0 and nums[j] < nums[j-1]:
nums[j], nums[j-1] = nums[j-1], nums[j]
j -= 1
return nums

#4. 希尔排序:
def shell_sort(nums):
gap = len(nums) // 2
while gap > 0:
for i in range(gap, len(nums)):
j = i
while j >= gap and nums[j] < nums[j-gap]:
nums[j], nums[j-gap] = nums[j-gap], nums[j]
j -= gap
gap //= 2
return nums

#5. 归并排序:
def merge_sort(nums):
if len(nums) <= 1:
return nums
mid = len(nums) // 2
left = merge_sort(nums[:mid])
right = merge_sort(nums[mid:])
return merge(left, right)
def merge(left, right):
res = []
while left and right:
if left[0] <= right[0]:
res.append(left.pop(0))
else:
res.append(right.pop(0))
res += left
res += right
return res

#6. 快速排序:
def quick_sort(nums):
if len(nums) <= 1:
return nums
pivot = nums[0]
left = [x for x in nums[1:] if x < pivot]
right = [x for x in nums[1:] if x >= pivot]
return quick_sort(left) + [pivot] + quick_sort(right)

#7. 堆排序:
def heap_sort(nums):
n = len(nums)
for i in range(n//2-1, -1, -1):
heapify(nums, n, i)
for i in range(n-1, 0, -1):
nums[i], nums[0] = nums[0], nums[i]
heapify(nums, i, 0)
return nums
def heapify(nums, n, i):
largest = i
l = 2i + 1
r = 2
i + 2
if l < n and nums[i] < nums[l]:
largest = l
if r < n and nums[largest] < nums[r]:
largest = r
if largest != i:
nums[i], nums[largest] = nums[largest], nums[i]
heapify(nums, n, largest)


#### 8. 请给出七大排序算法的C代码。



1.冒泡排序:
void bubble_sort(int arr[], int n)
{
int i, j;
for (i = 0; i < n-1; i++)

   for (j = 0; j < n-i-1; j++)  
       if (arr[j] > arr[j+1]) 
          swap(&arr[j], &arr[j+1]); 

}

//2.选择排序:
void selection_sort(int arr[], int n)
{
int i, j, min_idx;

for (i = 0; i < n-1; i++) 
{ 
    min_idx = i; 
    for (j = i+1; j < n; j++) 
      if (arr[j] < arr[min_idx]) 
        min_idx = j; 

    swap(&arr[min_idx], &arr[i]); 
} 

}

//3.插入排序:
void insertion_sort(int arr[], int n)
{
int i, key, j;
for (i = 1; i < n; i++)
{
key = arr[i];
j = i-1;

   while (j >= 0 && arr[j] > key) 
   { 
       arr[j+1] = arr[j]; 
       j = j-1; 
   } 
   arr[j+1] = key; 

}
}

//4.希尔排序:
void shell_sort(int arr[], int n)
{
for (int gap = n/2; gap > 0; gap /= 2)
{
for (int i = gap; i < n; i += 1)
{
int temp = arr[i];
int j;
for (j = i; j >= gap && arr[j - gap] > temp; j -= gap)
arr[j] = arr[j - gap];
arr[j] = temp;
}
}
}

//5.归并排序:
void merge(int arr[], int l, int m, int r)
{
int i, j, k;
int n1 = m - l + 1;
int n2 = r - m;

int L[n1], R[n2]; 

for (i = 0; i < n1; i++) 
    L[i] = arr[l + i]; 
for (j = 0; j < n2; j++) 
    R[j] = arr[m + 1+ j]; 

i = 0; 
j = 0; 
k = l; 
while (i < n1 && j < n2) 
{ 
    if (L[i] <= R[j]) 
    { 
        arr[k] = L[i]; 
        i++; 
    } 
    else
    { 
        arr[k] = R[j]; 
        j++; 
    } 
    k++; 
} 

while (i < n1) 
{ 
    arr[k] = L[i]; 
    i++; 
    k++; 
} 

while (j < n2) 
{ 
    arr[k] = R[j]; 
    j++; 
    k++; 
} 

}
void merge_sort(int arr[], int l, int r)
{
if (l < r)
{
int m = l+(r-l)/2;
merge_sort(arr, l, m);
merge_sort(arr, m+1, r);

    merge(arr, l, m, r); 
} 

}

//6.快速排序:
int partition (int arr[], int low, int high)
{
int pivot = arr[high];
int i = (low - 1);

for (int j = low; j <= high- 1; j++) 
{ 
    if (arr[j] <= pivot) 
    { 
        i++;   
        swap(&arr[i], &arr[j]); 
    } 
} 
swap(&arr[i + 1], &arr[high]); 
return (i + 1); 

}
void quick_sort(int arr[], int low, int high)
{
if (low < high)
{
int pi = partition(arr, low, high);
quick_sort(arr, low, pi - 1);
quick_sort(arr, pi + 1, high);
}
}

//7.堆排序:
void heapify(int arr[], int n, int i)
{
int largest = i;
int l = 2i + 1;
int r = 2
i + 2;

if (l < n && arr[l] > arr[largest]) 
    largest = l; 

if (r < n && arr[r] > arr[largest]) 
    largest = r; 

if (largest != i) 
{ 
    swap(arr[i], arr[largest]); 
    heapify(arr, n, largest); 
} 

}
void heap_sort(int arr[], int n)
{
for (int i = n / 2 - 1; i >= 0; i–)
heapify(arr, n, i);

for (int i=n-1; i>=0; i--) 
{ 
    swap(arr[0], arr[i]); 
    heapify(arr, i, 0); 
} 

}


#### 9. 请给出七大排序算法的Java代码。



//1. 冒泡排序:
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}

//2. 选择排序:
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
int temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
}

//3. 插入排序:
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; i++) {
int value = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > value) {
arr[j + 1] = arr[j];
j–;
}
arr[j + 1] = value;
}
}

//4. 希尔排序:
public static void shellSort(int[] arr) {
int n = arr.length;
for (int gap = n / 2; gap > 0; gap /= 2) {
for (int i = gap; i < n; i++) {
int value = arr[i];
int j = i - gap;
while (j >= 0 && arr[j] > value) {
arr[j + gap] = arr[j];
j -= gap;
}
arr[j + gap] = value;
}
}
}

//5. 归并排序:
public static void mergeSort(int[] arr) {
int n = arr.length;
if (n < 2) {
return;
}
int mid = n / 2;
int[] left = new int[mid];
int[] right = new int[n - mid];
for (int i = 0; i < mid; i++) {
left[i] = arr[i];
}
for (int i = mid; i < n; i++) {
right[i - mid] = arr[i];
}
mergeSort(left);
mergeSort(right);
merge(arr, left, right);
}
public static void merge(int[] arr, int[] left, int[] right) {
int i = 0, j = 0, k = 0;
int leftLen = left.length;
int rightLen = right.length;
while (i < leftLen && j < rightLen) {
if (left[i] <= right[j]) {
arr[k++] = left[i++];
} else {
arr[k++] = right[j++];
}
}
while (i < leftLen) {
arr[k++] = left[i++];
}
while (j < rightLen) {
arr[k++] = right[j++];
}
}

//6. 快速排序:
public static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int pivot = partition(arr, low, high);
quickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
public static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

uickSort(arr, low, pivot - 1);
quickSort(arr, pivot + 1, high);
}
}
public static int partition(int[] arr, int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] <= pivot) {

[外链图片转存中…(img-JmtRlGTb-1715536797407)]
[外链图片转存中…(img-DZ8xOrGn-1715536797408)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值