Foundation(巧妙)
巧妙算法
Legends_Never_Die
这个作者很懒,什么都没留下…
展开
-
是死循环!
#include<stdio.h>int main(){ double i; for(i=0;i!=10.0;i+=0.1) printf("%.1f\n",i); return 0;}之所以无限循环,那么就可以推断是for循环的条件始终成立,即 i 始终不等于10.但是 i 是从0开始的,每次都自加0.1.那么应该是100次后就停止.为什么i始...转载 2017-11-11 19:53:25 · 349 阅读 · 0 评论 -
判断是否是回文链表(快慢指针+栈)
bool is_palin(Node*h){ Node*quick,*slow,*p,*n; stack<int>s; if(h==NULL || h->next==NULL)return false; quick=slow=h; while(1) { if(quick->next==NULL || qui...原创 2018-11-03 19:55:49 · 475 阅读 · 0 评论 -
一维数组已经从小到大排序,删除数组中所有相同的数,函数返回删除后数组中数据个数
int f(int a[],int n){ int i,j;//j之前的数据都是不同的 for(i=1,j=0;i<n;i++) { if(a[i]!=a[j]) { a[++j]=a[i]; } } return j+1;}int main(){ int a[]...原创 2018-09-13 09:48:26 · 3268 阅读 · 0 评论 -
最长子序列问题
int a[]={-1,-4,5,6,-1,7,8};int themaxsubstr(int*b,int n){ int currmax=0,sum=0;//currmax保存当前最大值,用sum进行数组的遍历 for(int i=0;i<n;i++) { sum+=b[i]; if(sum>currmax)currmax=...原创 2018-05-14 22:03:17 · 117 阅读 · 0 评论 -
第九届蓝桥 第二题
标题:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16x16个像素信息。并把这些信息记录在字节中。一个字节可以存储8位信息,用32个字节就可以存一个汉字的字形了。把每个字节转为2进制表示,1表示墨迹,0表示底色。每行2个字节,一共16行,布局是: 第1字节,第2字节 第3字节,第4字节 .... 第31字节, 第32字...原创 2018-04-03 22:01:19 · 202 阅读 · 0 评论 -
求sinx的近似值
输入一个小于1的数,求sinx的近似值,要求误差小于0.0001。近似计算公式为 :.....分析:若取前n项的累加和作为isin(x)的近似值,则第n+1项(不加正负号)的值就是误差限。#include<stdio.h>int main(){ double x; while(~scanf("%lf",&x)) { double ite...原创 2017-11-10 17:05:48 · 13330 阅读 · 1 评论 -
8位二进制转化为10进制(适用于正数)
(上图中)上面为x进制转化为10进制的原式,该式需要n*(n+1)/2次乘法,若将其转换为下式,则只需要n次乘法。#include <algorithm>#include <string.h>#include <iostream>#include <stdio.h>#include <string>#include <ve...原创 2017-11-10 17:44:54 · 4944 阅读 · 0 评论 -
分数化小数
输入正整数a,b,c,输入a/b的小数形式,输入包含多组数据,结束标记为a=b=c=0精确到小数点后c位。a,b≤106,c≤100。解析:这题除了需要注意数据规模外难点在于保留的小数位数要手动输入,我们需要自己写程序模拟保留小数位数的过程(注意四舍五入),要直接通过计算机的浮点运算来实现不太可能(至少我试过了不行,有大神能实现的话请在评论区贴出代码,感激不尽),因为这涉及到多次类型转换,而每次从...转载 2017-11-11 12:47:26 · 289 阅读 · 2 评论 -
蛇形填数
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<iomanip>#include<cmath>#include<algorithm>#include<string>#原创 2018-03-24 22:34:56 · 105 阅读 · 0 评论 -
"之"字行打印(利用宏观框架)
void m_prinf(int a[][10],int ar,int ac,int br,int bc,bool dir){ if(dir) { while(ac!=bc+1) { printf("%d ",a[ar--][ac++]); } } else { ...原创 2018-11-03 20:07:32 · 165 阅读 · 0 评论