算法学习系列2.2
来源:互联网 发布:美国普通程序员工资 编辑:程序博客网 时间:2024/06/03 20:22
均采用C++通过。
1、 如果x是y的生成元,那么y=x+(x的各个位数之和)如,x为abc组成的3位数,那么x+a+b+c=y,y的生成元就是x。求1~10000内,输入任意一个数,输出它的生成元,如果没有输出0。例:216 输出198,121输出0
#define maxn 100005
int ans[maxn];
void digit_generator(){
int T,n;for(int i= 0;i<100005;i++) { ans[i] = 0;}for(int m= 1;m<maxn;m++){ int x= m , y=m; //将m作为y的生成元,这儿提取m的各个位数然后相加 while(x>0){ y+=x%10; x/=10; } if(ans[y]==0||m<ans[y]) ans[y] = m;}scanf("%d",&T);//循环次数while(T--){ scanf("%d",&n); printf("%d\n",ans[n]);}
}
2、不用数组存储,输入一堆数字,数字数量<1000000,计算1的个数
#define maxn 100000000+10
char s[maxn];
void count1(){
scanf("%s",s);int tot = 0;for(int i = 0;i<strlen(s);i++){ if(s[i]=='1') tot++;}printf("%d\n",tot);
}
3、计算判断题分数,O记1分,X记0分,若连续正确,则累加1,2,3等如OXOOOO=1+0+1+2+3+4
#define maxn 85
char s[maxn];
void score(){
scanf("%s",s);int score = 0;int flag = 0;for(int i = 0;i<strlen(s);i++){ if(s[i]=='X') { score+=0; flag = 0; } if(s[i]=='O'){ flag++; score+=flag; }}printf("%d",score);
}
阅读全文
0 0
- 算法学习系列2.2
- 算法学习系列1.1
- 算法学习系列1.2
- 算法学习系列2.1
- 算法学习系列2.3
- 算法学习系列-快速排序
- 【机器学习系列】EM算法
- 插入排序(算法学习系列)
- 排序算法学习系列(一)
- 机器学习系列----KNN算法
- 机器学习--神经网络算法系列--BackPropagation算法
- 虚拟机学习系列 - 3 - 垃圾收集算法
- 机器学习笔试面试系列算法集锦
- Python学习系列1:KNN算法
- 链接分析算法系列-机器学习排序
- 机器学习笔试面试系列算法集锦
- opencv学习系列(七)--- 细化算法
- 机器学习笔试面试系列算法集锦
- Linux执行shell脚本
- Mac上安装xgboost
- 第18篇
- LRU Cache
- 数组
- 算法学习系列2.2
- java知识点总结
- Jzoj4788 序列
- Shell---常用命令、常用环境变量、PS1、语系变量、位置变量、预定义变量、数值运算
- 初识Linux
- Anaconda离线安装Keras
- bzoj2120: 数颜色(带修莫队)
- 约瑟夫环问题
- 函数调用对stack的影响