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

徐州做网站企业北京度seo排名

徐州做网站企业,北京度seo排名,服装商城网站建设,自己做音乐网站有意思的数学问题任意4位不完全一样的数字#xff0c;能组合出的最大数字减去能组合出的最小数字#xff0c;得到一个新的数字(3位数补0#xff09;#xff0c;重复以上操作#xff0c;不超过7个循环#xff0c;必然得到一个数#xff1a;6174这个问题是之前发布的文章能组合出的最大数字减去能组合出的最小数字得到一个新的数字(3位数补0重复以上操作不超过7个循环必然得到一个数6174这个问题是之前发布的文章有读者朋友在文章留言提到这个我觉得比较有意思就拿出来分享最近迷上这类有意思的东西而且是热乎原创的。输入一个数3256将他从小到大输出就是23561、我写的代码刚开始写的第一份代码有个缺陷写完后看到另一个读者提交的答案已经考虑到了这个问题自我感觉大神还是挺多的。我说下我代码里面的几个重点1、我使用get来获取输入的字符所以呢再使用arr[i] - 0x30把ascii码转换成数字比如字符 1转换成数字1,就需要把字符1对应的值0x31减去0x30得到数字1。2、关于冒泡排序冒泡排序网上有很多讲解第一个for循环是从0开始到len-1结束的关键在于第二个for循环第二个for循环从第一个for循环的值的下一个位置开始到len结束。关于冒泡排序的思路我做了一组图示如附图1#include stdio.h #include stdbool.h /*判断数组里面是否有一样的数*/ int j(char *arr,int len) {int i,j;for(i0;ilen;i) arr[i]  arr[i] - 0x30;/*字符转成数字*/for(i0;ilen-1;i)for(ji1;jlen;j)if(arr[i]  arr[j])return false;return true; }/*判断是否不足够4位数字*/ int j2(int diff) {if(diff10){diffdiff*1000;}else if(diff100){diff  diff*100;}else if(diff1000){diffdiff*10;} }/*升序*/ int m(char *arr,int len)  {int i,j;for(i0;ilen-1;i)for(ji1;jlen;j)/*和之后的位置比较*/if( arr[i]  arr[j]){arr[i] ^ arr[j];arr[j] ^ arr[i];arr[i] ^ arr[j];}  } /*降序*/ int n(char *arr,int len)  {int i,j;for(i0;ilen-1;i)for(ji1;jlen;j)if( arr[i]  arr[j]){arr[i] ^ arr[j];arr[j] ^ arr[i];arr[i] ^ arr[j];}//printf(%d%d%d%d\n,arr[0],arr[1],arr[2],arr[3]);  }int main(void) {int dmax,dmin,diff,i;char nums[4];char max[4];char min[4]; /*输入4个不同的数字*/while(j(nums,4)  false){printf(input:);gets(nums);}/*7个循环进行判断*/for(i0;i7;i){/*排序*/m(nums,4);//printf(%d%d%d%d\n,nums[0],nums[1],nums[2],nums[3]);dmax  nums[0]*1000  nums[1]*100nums[2]*10nums[3];/*排序*/n(nums,4);//printf(%d%d%d%d\n,nums[0],nums[1],nums[2],nums[3]);dmin  nums[0]*1000  nums[1]*100nums[2]*10nums[3];diff  dmax - dmin;diff  j2(diff);printf(dmax:%d dmin:%d diff:%d\n,dmax,dmin,diff);if(diff  6174){printf(find 6174\n);break;}nums[0]  diff/1000;nums[1]  diff%1000/100;nums[2]  diff%1000%100/10;nums[3]  diff%10;}getchar();return (0);  }  代码输出input:1234 dmax:4321 dmin:1234 diff:3087 dmax:8730 dmin:378 diff:8352 dmax:8532 dmin:2358 diff:6174 find 6174 基于严谨性我写了个测试程序来检验我的这段代码我总是觉得这样的理论不可思议用一个数字是不可能代表所有的可能性的所以有了下面的这段代码。#include stdio.h #include stdbool.h #include time.h/*判断数组里面是否有一样的数*/ int j(char *arr,int len) {int i,j;for(i0;ilen;i) arr[i]  arr[i] - 0x30;/*字符转成数字*/for(i0;ilen-1;i)for(ji1;jlen;j)if(arr[i]  arr[j])return false;return true; }/*判断是否不足够4位数字*/ int j2(int diff) {if(diff10){diffdiff*1000;}else if(diff100){diff  diff*100;}else if(diff1000){diffdiff*10;} }/*升序*/ int m(char *arr,int len)  {int i,j;for(i0;ilen-1;i)for(ji1;jlen;j)/*和之后的位置比较*/if( arr[i]  arr[j]){arr[i] ^ arr[j];arr[j] ^ arr[i];arr[i] ^ arr[j];}  } /*降序*/ int n(char *arr,int len)  {int i,j;for(i0;ilen-1;i)for(ji1;jlen;j)if( arr[i]  arr[j]){arr[i] ^ arr[j];arr[j] ^ arr[i];arr[i] ^ arr[j];}//printf(%d%d%d%d\n,arr[0],arr[1],arr[2],arr[3]);  }/****************************************************************************** *函数名称void get_random(char * random) *函数功能产生一个各位数不相等的四位随机数 *入口参数random为返回的随机数 *返 回 值无 *备 注先生成一个0-9的整数数组再随机从中取四个数每取一个将该位置为-1 *******************************************************************************/ void get_random(char * random) {int i, j[10], k;for (i  0; i  10; i){j[i]  i;}for(i  0; i  4; i){//生成第i个随机数k  (int)rand() % 10;//k为下标while (j[k]  -1){k  (k  1) % 10;}random[i]  0  j[k];j[k]  -1;} }int main(void) {int dmax,dmin,diff,i,r,count;long t;char nums[4],max[4],min[4];srand((unsigned)time(t));for(count  0;count 10000;count){get_random(nums);printf(%c%c%c%c\n,nums[0],nums[1],nums[2],nums[3]);for(i0;i7;i){m(nums,4);dmax  nums[0]*1000  nums[1]*100nums[2]*10nums[3];n(nums,4);dmin  nums[0]*1000  nums[1]*100nums[2]*10nums[3];diff  dmax - dmin;diff  j2(diff);if(diff  6174){printf(find 6174 %d\n,count);break;}if(i  6  diff ! 6174)goto error;nums[0]  diff/1000;nums[1]  diff%1000/100;nums[2]  diff%1000%100/10;nums[3]  diff%10;}}getchar();return (0);error:printf(Cant find 6174 %d\n,count);getchar();return (0);  }  我在代码里面测试了 10000 次数据意思就是我输入10000个不同的数据来测试是不是结果都是6174结果确实是这样。代码输出因为输出比较多我只截取了最后的一些find 6174 9985 9802 find 6174 9986 5908 find 6174 9987 3127 find 6174 9988 9124 find 6174 9989 5027 find 6174 9990 5304 find 6174 9991 7864 find 6174 9992 8213 find 6174 9993 4795 find 6174 9994 0184 find 6174 9995 2410 find 6174 9996 2134 find 6174 9997 5340 find 6174 9998 3294 find 6174 9999 2、有个读友提供的代码基本思路都差不多而且里面用到的排序思路都是一样的。#include stdio.hint getMax(int byte[]){int max;for(int i0;i3;i){for(int ji1;j4;j){if(byte[i]byte[j]){int tbyte[i];byte[i]  byte[j];byte[j]  t;}}}// printf( sort byte is  %d  %d  %d  %d\n,byte[0],byte[1],byte[2],byte[3]);// printf(\n); max  byte[0]*1000byte[1]*100byte[2]*10byte[3];return max; }int getMin(int byte[]){int min;for(int i0;i3;i){for(int ji1;j4;j){if(byte[i]byte[j]){int tbyte[i];byte[i]  byte[j];byte[j]  t;}}}// printf( sort byte is  %d  %d  %d  %d\n,byte[0],byte[1],byte[2],byte[3]);// printf(\n); min  byte[0]*1000byte[1]*100byte[2]*10byte[3];return min;  }int main(){int a  0;printf(input the num :\n);int max;int min;scanf(%d,a);for(int i0;i7;i){printf(the num:%d\n,a);if(a10){aa*1000;}else if(a100){a  a*100;}else if(a1000){aa*10;}printf(deal num:%d\n,a);int byte[4]{0};byte[0]a/1000;byte[1]a/100%10;byte[2]  a/10%10;byte[3]  a%10;// printf(\n); // printf(byte is  %d  %d  %d  %d\n,byte[0],byte[1],byte[2],byte[3]);if(a  6174){printf(bingo!!!\n);break;}max  getMax(byte);min  getMin(byte);printf(the max:%d\n,max);printf(the min:%d\n,min);amax-min;}return 0; } 代码运行输出weiqifabsp-ubuntu1804:~/c$ gcc 6174.c  ./a.out input the num : 1234 the num:1234 deal num:1234 the max:4321 the min:1234 the num:3087 deal num:3087 the max:8730 the min:378 the num:8352 deal num:8352 the max:8532 the min:2358 the num:6174 deal num:6174 bingo!!! weiqifabsp-ubuntu1804:~/c$ 附图1推荐阅读专辑|Linux文章汇总专辑|程序人生专辑|C语言我的知识小密圈
http://www.pierceye.com/news/253794/

相关文章:

  • 连云港做企业网站公司wordpress小工具上下
  • 新房网站建设公司手机制作app需要什么软件
  • 网站备案登记表网站建设及规划
  • 彩票网站建设平台wordpress模板怎么改织梦
  • 商业中心 网站建设怎么创建自己的官网
  • 中国建设银行总行官方网站宁波网站推广渠道
  • 网站备案的网站名称分类信息网址
  • 教育类网站建站jae安装wordpress
  • wordpress自定义站点设计网站广告语
  • 广告型网站怎么做的网络技术学习网站
  • 网站建设公司不赚钱进一步推进网站建设
  • 四川省工程建设协会网站360路由器网站建设
  • 快云服务器怎么做网站360网站收录提交入口大全
  • 网站设计的安全尺寸正规的培训行业网站开发
  • 网站提交了被收录后改怎么做商丘网站制作教程
  • 建网站被封了网站建设网页设计小江
  • 用node做的网站索引网站有哪些
  • 无锡设计网站建设时尚杂志网站设计分析
  • 嘉定区网站建设网站建设怎么谈
  • 网站开发 毕业设计如何做网站app
  • 优惠券网站开发谷歌seo搜索引擎下载
  • 安徽省建设工程资料上传网站重庆相亲网
  • 河南建设网站官网中英文公司网站
  • 手机版网站如何建设会议响应式网站开发
  • 肇庆住房建设部网站国外专门做旅游攻略的网站
  • 网站如何设置长尾词静态网站开发一体化课程
  • 学校网站建设流程做网站用哪个工具
  • 网站开发工作室策划案域名的价格
  • 郑州艾特网站建设公司互联网保险图片
  • 网站后台任务网站设计建设一般多少钱