当前位置: 首页 > news >正文

衡阳网站建设ss0734wordpress 点赞

衡阳网站建设ss0734,wordpress 点赞,公司软件网站建设,怎么做企业销售网站目录 加减混合运算 计算n的k次方 计算非负整数各位之和 字符串逆序 双指针 递归 矩阵计算 矩阵转置 加减混合运算 题目:计算1 / 1 - 1 / 2 1 / 3 - 1 / 4 1 / 5 …… 1 / 99 - 1 / 100 的值,打印出结果。 一般情况我们可以写个循环然后在用条…

目录

加减混合运算

计算n的k次方

计算非负整数各位之和

字符串逆序

双指针 

递归

矩阵计算

 矩阵转置


加减混合运算

题目:计算1 / 1 - 1 / 2 + 1 / 3 - 1 / 4 + 1 / 5 …… + 1 / 99 - 1 / 100 的值,打印出结果。

一般情况我们可以写个循环然后在用条件判断语句对两种情况进行判断,但这里有个更优质的办法,设置一个开关变量在正数和负数进行切换即可。

    int flag = 1;double sum = 0;for (int i = 1; i < 100; i++){sum += flag* (1.0 / i);//注意小数flag = -flag;}printf("%lf", sum);

在计算分数时,除数和被除数至少有一个是小数,否则会被当成整数运算

计算n的k次方

三种情况(递归)

  • n < 0, 1.0 / Pow(n, -k)(利用正向递归后变为倒数)
  • n > 0, n* Pow(n,k-1)
  • n = 0, 1
double Pow(int n, int k)
{if (k < 0){return 1.0 / n * Pow(n, -k);}else if (k == 0){return 1;}else return n * Pow(n, k - 1);
}
int main()
{int n = 0;int k = 0;scanf("%d %d", &n, &k);double ret = Pow(n, k);printf("%lf\n", ret);return 0;
}

计算非负整数各位之和

用递归从后往前依次拆分,直到只有一位数。

int DigitSum(unsigned int n)
{if (n < 10)return n;elsereturn DigitSum(n / 10) + n % 10;
}
int main()
{unsigned int num = 0;scanf("%u", &num);int sum = DigitSum(num);printf("%d\n", sum);return 0;
}

字符串逆序

给定一个字符假设abcdef,逆置成fedcba。

双指针 

设置首尾指针,交换后往中间靠拢。

//下标
void reverse_string(char* str)
{int len = strlen(str);int left = 0;int right = len - 1;while (left<right){char tmp = *(str + left);*(str + left) = *(str + right);*(str + right) = tmp;left++;right--;}
}
//指针
void reverse_string(char* str)
{int len = strlen(str);char* left = str;char* right = str + len - 1;while (left<right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}

递归

递归可能不容易想到,因为这是从两头递归到中间结束条件即只剩一个数或没有数可以交换。递归怎么做到两头并进呢?这就要用到我们的\0了,当左边的数变为右边时,先不急着将左边的数换到右边,而是在右边位置补上一个\0,然后指针+1,形成递归,这样交换的时候就不用考虑\0后已交换的内容,实现正确逆置。

上图是递归的具体过程,从图可知,数组长度从手动替换\0开始计算(如果不满足条件就将\0替换成数字)。判断条件为数组长度大于1满足递归条件,但这是偶数的情况,如果是奇数,长度就是4,递归一次后变为2,此后不满足递归条件,所以正确判断条件应该是数组长度大于2

void reverse_string(char* str)
{int len = strlen(str);char* tmp = *str;*str = *(str + len - 1);*(str + len - 1) = '\0';if (*str > 2){reverse_string(str + 1);}*(str + len - 1) = 'tmp';
}

矩阵计算

 矩阵打印用二维矩阵,在里层输入矩阵的值,判断大于0的数进行累加。 

    int n = 0;int m = 0;scanf("%d %d", &n, &m);int i = 0;int k = 0;int sum = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < m; j++){scanf("%d", &k);if (k >= 0)sum += k;}}printf("%d\n", sum);

 矩阵转置

注意转置要先将值存放到二维数组里,然后从原先按行打印变为按列打印即可。

	int n = 0;int m = 0;scanf("%d %d", &n, &m);//int arr[n][m];//c99int arr[10][10];int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < m; j++){scanf("%d", &arr[i][j]);}}for (j = 0; j < m; j++){for (i = 0; i < n; i++){printf("%d ", arr[i][j]);}printf("\n");}

如果在一些刷题网站上,我们可以直接使用变长数组初始化数组,如果不使用变长数组,可以直接设置数组大小为题目规定的最大长度即可。

http://www.yayakq.cn/news/76110/

相关文章:

  • 网站建设动态代码卖东西的平台有哪些
  • 成都个人网站开发好的网站推广
  • 微信公司网站如何修改wordpress后台绑定的域名
  • 杭州网站备案vs网站建设弹出窗口代码c
  • 防录屏网站怎么做云南建设监理协会网站
  • 怎样进行网络推广效果更好百度网站优化排行
  • 网站地图做计划任务如何在建设部网站查询获奖情况
  • 做公司网站可以抄别人的吗制作教育类网站
  • 珠宝出售网站模板北京国税局网站做票种核定时
  • 用护卫神做共享网站网上怎么打广告最有效果
  • 网站内容为王wordpress4.6+中文
  • 小程序网页设计网站优化建设扬州
  • 以下哪个域名是做游戏网站的界面设计职业技能等级证书
  • 新闻cms静态网站模板下载常州网站建设维护
  • 网站添加视频代码建设网站的拓扑图
  • WordPress仿站助手网上机械加工厂
  • 普陀区建设局网站wordpress 搜索内容
  • 个人做网站能赚到钱吗企业管理培训课程价格表
  • 住房和城乡建设部中国建造师网站卓老师建站特色功能
  • 邯郸建设网站的公司网站编程语言排行榜
  • 如何在外管局网站做延期收汇建设通破解版
  • 坪地做网站烟台网站建设哪家便宜
  • 提高网站权重wordpress框架教学
  • 网站建设指导思想和目标官网建设流程
  • 网站后台ftp在哪工作总结个人总结
  • 智能ai写作免费网站如何在本单位网站上做链接
  • 银川网站seo拿回家组装的零件加工活
  • 网站模板怎么使用教程如何入wordpress
  • thinkphp 做门户网站绵阳市网站建设
  • 有什么搜图片的网站好WordPress 主题 a5