赞
踩
应该没啥人看,就是个菜鸡的自我记录贴。
考研失败了找工作,想起了曾经联系过我的华为od hr,联系之后对方很善良的表示能给时间让我学好了再机考面试,不知道别人学习要多久,懵逼的学了一个多月还是觉得自己啥都不懂,但还是勉强继续学吧。
约等于零基础从头学c语言再准备机考了,网上好多代码解答都是c++或java做的,我试试用c好了,暂时懒得重新学一门语言了。
PS:本人菜鸡一枚,给出的代码有时候随着学习会反应过来有些地方特别蠢,但是懒得改,看到很笨的解法勿喷(主要是数据结构和算法学得太菜了)。由于我也没有用例库,代码只保证示例通过,不确定是不是百分百通过,欢迎大佬交流指正。
4.17
一辆运送快递的货车,运送的快递均放在大小不等的长方体快递盒中,为了能够装载更多的快递,同时不能让货车超载,需要计算最多能装多少个快递。
注:快递的体积不受限制,快递数最多1000个,货车载重最大50000。
输入描述:
第一行输入每个快递的重量,用英文逗号分隔,如:5,10,2,11
第二行输入货车的载重量,如:20
不需要考虑异常输入。
输出描述:
输出最多能装多少个快递,如:3
示例1:
输入
5,10,2,11
20
输出
3
说明
货车的载重量为20,最多只能放三个快递5、10、2,因此输出3
- #include<stdio.h>
- int main()
- {
- int arr[100]={0};
- int i=0,j=0,sum=0;
- int n=0;
- int temp,k;
- while(scanf("%d,",&arr[i])!=EOF)
- {
- i++;
- n++;
- }
- k=arr[n-1];
- for(i=0;i<n-1;i++)
- {
- for(j=i+1;j<n-1;j++)
- {
- if(arr[i]>arr[j])
- {
- temp=arr[j];
- arr[j]=arr[i];
- arr[i]=temp;
- }
- }
- }
- for(i=0;i<n-1;i++)
- {
- sum+=arr[i];
- if(sum>k)
- printf("%d",i);
- }
- }
很笨的办法,之前一直在查有逗号分隔的数据怎么录入数组,然后看到这么简单可以录入,但是不知道为什么换行仍然继续录入了货车载重量k,不想探究了,直接赋值,就这样吧。
5.8
如果三个正整数A B C ,A²+B²=C²则为勾股数
// 如果ABC之间两两互质,即A与B A与C B与C均互质没有公约数,
// 则称其为勾股数元组。
// 请求出给定n m 范围内所有的勾股数元组
// 输入描述
// 起始范围 1<n<10000 n<m<10000
// 输出目描述
// abc 保证a<b<c输出格式 a b c
// 多组勾股数元组 按照a升序b升序 c升序的排序方式输出。
// 给定范围内,找不到勾股数元组时,输出 Na
// 案例
// 输入
// 1
// 20
// 输出
// 3 4 5
// 5 12 13
// 8 15 17
// 输入
// 5
// 10
// 输出
// Na
- #include<stdio.h>
- int gcd(int a,int b)
- {
- while(a%b)
- {
- int temp=a;
- a=b;
- b=temp%b;
- }
- return b;
- }
- int main()
- {
- int n,m,i,j,k,count=0;
- scanf("%d %d",&n,&m);
- for(i=n;i<m;i++)
- {
- for(j=i+1;j<m;j++)
- {
- for(k=j+1;k<=m;k++)
- {
- if(i<j && j<k && (i*i + j*j == k*k) &&gcd(i,j)==1 && gcd(j,k)==1 && gcd(i,k)==1)
- {
- printf("%d %d %d\n",i,j,k);
- count++;
- }
- }
- }
- }
- if(count==0)
- printf("Na");
- }
给定两个整数数组
//array1 array2 数组元素按升序排列
// 假设从arr1 arr2中分别取出一个元素,可构成一对元素
// 现在需要取出k对元素,并对取出的所有元素求和
// 计算和的最小值
// 注意:两对元素对应arr1 arr2的下标是相同的
// 视为同一对元素
//输入描述
// 输入两行数组arr1 arr2
// 每行首个数字为数组大小size 0<size<=100
// arr1,2中的每个元素 0< <1000
// 接下来一行 正整数k 0<k<=arr1.size * arr2.size
// 输出描述
// 满足要求的最小值
// 例子
//输入
// 3 1 1 2
// 3 1 2 3
// 2
//输出
// 4
//说明:用例中需要取两个元素,
// 取第一个数组第0个元素与第二个数组第0个元素组成一个元素
// [1,1]
//取第一个数组第1个元素与第二个数组第0个元素组成一个元素
// [1,1]
//求和为1+1+1+1=4 ,满足要求最小
- #include<stdio.h>
- int main()
- {
- int i,j,k,n,m,t=0,sum=0;
- int arr1[100]={0},arr2[100]={0},arr3[10000]={0};
- scanf("%d ",&n);
- for(i=0;i<n;i++)
- {
- scanf("%d ",&arr1[i]);
- }
- scanf("%d",&m);
- for(i=0;i<m;i++)
- {
- scanf("%d ",&arr2[i]);
- }
- scanf("%d",&k);
- for(i=0;i<n;i++)
- {
- for(j=0;j<m;j++)
- {
- arr3[t]=arr1[i]+arr2[j];
- t++;
- }
- }
- for(i=0;i<m*n;i++)
- {
- for(j=i+1;j<m*n;j++)
- {
- if(arr3[i]>arr3[j])
- {
- int temp=arr3[i];
- arr3[i]=arr3[j];
- arr3[j]=temp;
- }
- }
- }
- for(i=0;i<k;i++)
- {
- sum+=arr3[i];
- }
- printf("%d",sum);
- }
这道题做法纯属讨巧懒得写了……尽量不要学
给出n阶方阵里所有数
求方阵里所有数的和
输入描述&#x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。