长沙seo网站建设袁飞最好,生成链接的网站,深圳公司网站建立,网站技术防护建设情况#x1f497; #x1f497; 博客:小怡同学 #x1f497; #x1f497; 个人简介:编程小萌新 #x1f497; #x1f497; 如果博客对大家有用的话#xff0c;请点赞关注再收藏 #x1f31e; 文章目录leetcode 题号#xff1a;728. 自除数leetcode 题号#xff1a;238.… 博客:小怡同学 个人简介:编程小萌新 如果博客对大家有用的话请点赞关注再收藏 文章目录leetcode 题号728. 自除数leetcode 题号238. 除自身以外数组的乘积leetcode 题号448. 找到所有数组中消失的数字leetcode 题号485. 最大连续 1 的个数牛客网题号 HJ37 统计每个月兔子的总数牛客网题号 ZJ16 数列的和牛客网题号 HJ56 完全数计算牛客网题号 HJ11 数字颠倒牛客网题号 HJ31 单词倒排牛客网题号 NC61 两数之和牛客网题号 KS33 寻找奇数牛客网题号 HJ46 截取字符串leetcode 题号728. 自除数
自除数 是指可以被它包含的每一位数整除的数。 例如128 是一个 自除数 因为 128 % 1 0128 % 2 0128 % 8 0。 自除数 不允许包含 0 。 给定两个整数 left 和 right 返回一个列表列表的元素是范围 [left, right] 内所有的 自除数
int* selfDividingNumbers(int left, int right, int* returnSize){
int* ret (int*)malloc(sizeof(int) * 1000);
*returnSize 0;
for(int i left ; i right ; i)
{int num i;while(num){int reminder num % 10;//if(reminder 0 || (i % reminder) ! 0)//自除数不可以为0且除以自己的每一位数等于0break;//个人理解 使用break这种跳出循环的语句可以判断是遍历一遍还是突然跳出num / 10;}if(num 0)ret[(*returnSize)] i ;
}
return ret;
}leetcode 题号238. 除自身以外数组的乘积
给你一个整数数组 nums返回 数组 answer 其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。
题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内
int* productExceptSelf(int* nums, int numsSize, int* returnSize){
int* ret (int*)malloc(sizeof(int) * numsSize);
*returnSize numsSize;
int left 1;
int right 1;
for(int i 0; i numsSize ;i)
{ret[i] left;// ret[i]储存 i个之前的乘积共(i-1)乘积left * nums[i];//为下次ret[i1] 做准备
}
for(int i numsSize-1 ;i 0 ;i--)
{ret[i] * right; //同理right * nums[i];
}
return ret;
}leetcode 题号448. 找到所有数组中消失的数字
给你一个含 n 个整数的数组 nums 其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字并以数组的形式返回结果
int* findDisappearedNumbers(int* nums, int numsSize, int* returnSize){for(int i 0 ; i numsSize ; i)
{if(nums[abs(nums[i]) - 1] 0)//因为输入1——n的数字所以下标为0——n-1 找到下标对应的元素并乘以-1遍历一遍之后还是正数的元素则是缺少的元素nums[abs(nums[i]) - 1] -(nums[abs(nums[i]) - 1]);
}
int* ret (int*)malloc(sizeof(int) * numsSize);
*returnSize 0;
for(int i 0 ; i numsSize ; i)
{if(nums[i] 0){ret[*returnSize] i1;//因为刚开始数组每个元素-1并成为下标找到缺少的下标之后需要1*returnSize 1;}
}
return ret;
}leetcode 题号485. 最大连续 1 的个数
给定一个二进制数组 nums 计算其中最大连续 1 的个数。
int findMaxConsecutiveOnes(int* nums, int numsSize){int count 0;
int max 0;
for(i
# 牛客网题号 HJ31 单词倒排
对字符串中的所有单词进行倒排。说明1、构成单词的字符只有26个大写或小写英文字母2、非构成单词的字符均视为单词间隔符3、要求倒排后的单词间隔符以一个空格表示如果原字符串中相邻单词间有多个间隔符时倒排转换后也只允许出现一个空格间隔符4、每个单词最长20个字母
c
#include stdio.hint main() {char str [10001] {0};int row 0 ;while(gets(str) 0){char* ptr str;char* word[10001] {NULL};while(*ptr ! \0)//思路开始首字母在合格范围内则加入指针数组并循环检测并\0来结尾{if((*ptr a *ptr z) ||( *ptr A *ptr Z )){ word[row] ptr;、、while ((*ptr a *ptr z) ||( *ptr A *ptr Z )){ptr;}}*ptr \0;ptr;}int i 0;for( i row -1; i 0 ;i--){printf(%s ,word[i]);}printf(\n);}return 0;
}牛客网题号 HJ37 统计每个月兔子的总数
有一种兔子从出生后第3个月起每个月都生一只兔子小兔子长到第三个月后每个月又生一只兔子。 例子假设一只兔子第3个月出生那么它第5个月开始会每个月生一只兔子。 一月的时候有一只兔子假如兔子都不死问第n个月的兔子总数为多少
方法一(递归实现)
#include stdio.h
int Fib(int a)
{if(a 2)return 1;elsereturn Fib(a-1)Fib(a-2);
}int main() {int count 0;scanf(%d,count);printf(%d , Fib(count));return 0;
}方法二
#include stdio.h
int main() {int n 0;scanf(%d ,n);int a 1;int b 1;int c 2;for(int i 3 ; i n ; i){c a b; a b;b c;}printf(%d,c);return 0;
}牛客网题号 ZJ16 数列的和
数列的定义如下数列的第一项为n以后各项为前一项的平方根求数列的前m项的和
#include stdio.h
#include math.h
int main() {double num 0;int a 0;while(~scanf(%lf %ld,num,a)){double sum 0.0;for(int i 0 ; i a ; i){sum num;num sqrt(num);}printf(%.2lf\n ,sum);}return 0;
}牛客网题号 HJ56 完全数计算
完全数Perfect number又称完美数或完备数是一些特殊的自然数。
它所有的真因子即除了自身以外的约数的和即因子函数恰好等于它本身。
例如28它有约数1、2、4、7、14、28除去它本身28外其余5个数相加12471428。
输入n请输出n以内(含n)完全数的个数。
#include stdio.h
#include math.h
int is_perfect_number(int n)
{int sum 1;for(int i 2 ; i sqrt(n) ;i){if(n % i 0){sum i;if(i ! sqrt(n))sum n/i; }}if(sum n)return 1;return 0;
}
int main() {int count 0;int a 0;scanf(%d,a); for(int i 2 ; i a ;i){if(is_perfect_number(i) 1)count#include stdio.h
#include string.h
int main() {int n 0;while (scanf(%d, n) ! EOF) { if(n 0){printf(%d ,n % 10);continue;}while(n){int tmp (n%10) ;printf(%d,tmp);n / 10;}}return 0;
}}printf(%d\n,count);return 0;
}牛客网题号 HJ11 数字颠倒
输入一个整数将这个整数以字符串的形式逆序输出 程序不考虑负数的情况若数字含有0则逆序形式也含有0如输入为100则输出为001
#include stdio.h
#include string.h
int main() {int n 0;while (scanf(%d, n) ! EOF) { if(n 0){printf(%d ,n % 10);continue;}while(n){int tmp (n%10) ;printf(%d,tmp);n / 10;}}return 0;
}牛客网题号 HJ31 单词倒排
对字符串中的所有单词进行倒排。
说明
1、构成单词的字符只有26个大写或小写英文字母
2、非构成单词的字符均视为单词间隔符
3、要求倒排后的单词间隔符以一个空格表示如果原字符串中相邻单词间有多个间隔符时倒排转换后也只允许出现一个空格间隔符
4、每个单词最长20个字母
#include stdio.hint main() {char str [10001] {0};int row 0 ;while(gets(str) 0){char* ptr str;char* word[10001] {NULL};while(*ptr ! \0){if((*ptr a *ptr z) ||( *ptr A *ptr Z )){ word[row] ptr;ptr;while ((*ptr a *ptr z) ||( *ptr A *ptr Z )){ptr;}}*ptr \0;ptr;}int i 0;for( i row -1; i 0 ;i--){printf(%s ,word[i]);}printf(\n);}return 0;
}牛客网题号 NC61 两数之和
给出一个整型数组 numbers 和一个目标值 target请在数组中找出两个加起来等于目标值的数的下标返回的下标按升序排列。
int* twoSum(int* numbers, int numbersLen, int target, int* returnSize ) {int* ret (int*)calloc(2,sizeof(int));*returnSize 2;for(int i 0 ; i numbersLen ; i){ if(numbers[i] target 10)continue;for(int j i 1 ; j numbersLen ;j){if((numbers[i] numbers[j]) target){ret[0] i 1;ret[1] j 1;return ret; }}}*returnSize 0;return NULL;
}牛客网题号 KS33 寻找奇数
现在有一个长度为 n 的正整数序列其中只有一种数值出现了奇数次其他数值均出现偶数次请你找出那个出现奇数次的数值。
#include stdio.hint main() {int n 0;int tmp 0;int num 0;scanf(%d,n);for(int i 0 ; i n ; i){scanf(%d,tmp);num ^ tmp;}printf(%d\n,num);return 0;
}牛客网题号 HJ46 截取字符串
输入一个字符串和一个整数 k 截取字符串的前k个字符并输出
#include stdio.hint main() {char str[100] {0};int a 0;scanf(%s %d,str,a);str[a] \0;printf(%s,str);return 0;
}