小题精炼-----初试C语言
毫无疑问, 这个又是给新入门学C语言的小鲜肉准备的!
题解:
1. 直接两个循环就ok啦! 当初讲课的时候几乎讲过原题啦。
2. 直接 100的三次方就是1000000啦, 所以直接对某数的三次方开方(取int型), 然后再平方, 判断一下是否相等。
3. 可以直接扫描一下, 把大写字母都转化成小写, 然后逐个判断!
4. 求组合数, 直接按照求组合数的公式, 然后循环求解, 就好啦!
5. 直接循环求出 真因子和, 判断一下是否和原数相等否, 即可!(这个好像也讲过原题!)
6.多重集的组合,这就是一个公式的事儿! 这个公式的推导过程也很机智!
附加题: 仔细回想一下自己小学算除法的过程, 然后用一个数组保存余数。 用另一个数组判断同一个余数是否出现两次,当有一个余数出现两次时, 立刻停止往下除。 然后找出这两个余数出现的位置(加括号), 然后把各 余数*10 /除数 输出即可! 。 详见代码!
Talk is cheap, show me your code!
各题代码:
1.
#include <iostream>
#include <cstdio>
using namespace std; int main()
{
int ok;
printf("%d\n", );
for(int i=; i<=; i++)
{
int ok = ;
for(int j=; j*j<=i; j++)
{
if(i%j==)
{
ok = ;
break;
}
}
if(ok) printf("%d\n", i);
}
return ;
}
#include<stdio.h>
#include<math.h>
const int maxn=;
int a[maxn];
int main()
{
for(int i=;i<maxn;i++)
a[i]=i;
for(int i=;i<sqrt(maxn);i++) if(a[i]) {
for(int j=i*i;j<maxn;j=j+i)
a[j]=;
}
for(int i=;i<maxn;i++)
if(a[i]!=) printf("%8d",i);
}
2.
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std; int main()
{
for(int i=; i<=; i++)
{
int q = sqrt(i*i*i*1.0);
if(q*q==i*i*i) printf("%d\n", i*i*i);
}
return ;
}
#include<cstdio>
#include<cmath>
int main()
{
for(int i=;i<=;i++){
if(sqrt(i*i*i)*sqrt(i*i*i)==i*i*i);
printf("%8d\n",i*i*i);
}
return ;
}
3.
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std; char str[]; int main()
{
while(scanf("%s", str)!=EOF)
{
getchar();
for(int i=; str[i]!='\0'; i++)
if(str[i]>='A'&&str[i]<='Z') str[i] += ;
int len = ;
for(int i=; str[i]!='\0'; i++)
{
if(str[i]!='#') len++;
for(int j=i+; str[j]!='\0'; j++)
if(str[i]==str[j]) str[j] = '#';
}
printf("%d\n", len);
}
return ;
}
#include<cstdio>
#include<cstring>
const int maxn=;
char s[maxn];
int main()
{
int a[]={};
while(~scanf("%s",s))
{
int sum=,len=strlen(s);
for(int i=;i<len;i++){ if(a[s[i]-]==||a[s[i]-]==)
continue; if(s[i]>=&&s[i]<=)
a[s[i]-]=; if(s[i]>=&&s[i]<=)
a[s[i]-]=;
}
for(int i=;i<;i++)
if(a[i]) sum++;
printf("%d\n",sum);
}
return ;
}
4.
#include <iostream>
#include <cstdio>
using namespace std; int main()
{
int ans;
int n, m;
while(scanf("%d%d", &n, &m)!=EOF)
{
ans = ;
if(m<n-m) m = n-m;
for(int i=m+; i<=n; i++)
ans*=i;
for(int i=; i<=n-m; i++)
ans/=i;
printf("%d\n", ans);
}
return ;
}
#include<cstdio>
int comb(int n,int m)
{
if(m==||n==m)
return ;
return comb(n-,m)+comb(n-,m-);
}
int main()
{
int m,n;
while(scanf("%d%d",&n,&m)!=EOF){
printf("%d\n",comb(n,m));
}
return ;
}
5.
#include <iostream>
#include <cstdio>
using namespace std; int main()
{
for(int i=; i<=; i++)
{
int sum = ;
for(int j=; j*j<=i; j++)
{
if(i%j==) sum += j + i/j;
if(j*j==i) sum-=j;
}
if(sum==i) printf("%d\n", i);
}
return ;
}
#include<cstdio>
const int maxn=;
int main()
{
int s;
for(int i=;i<=maxn;i++){
s=;
for(int j=;j<i;j++){
if(i%j==)
s+=j;
}
if(s==i) printf("%d\n",s);
}
return ;
}
6.
#include <iostream>
#include <cstdio>
using namespace std; int main()
{
int ans=;
for(int i=+; i<=; i++)
ans*=i;
for(int i=; i<=-; i++)
ans/=i;
printf("%d\n", ans);
return ;
}
附加题:
#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std; bool vis[];
int ans[]; int main()
{
int a, b;
while(scanf("%d%d", &a, &b)!=EOF)
{
printf("%d", a/b);
if(a%b==) {printf("\n"); continue;}
printf(".");
int flag = -; int k=;
memset(vis, , sizeof(vis));
a = a%b; vis[a] = ; ans[k++] = a;
while(a%b)
{
a *= ;
int temp = a%b;
if(vis[temp])
{
for(int i=; i<k; i++)
{
if(temp==ans[i])
{
flag = i; break;
}
}
break;
}
else
{
ans[k++] = temp;
a = temp;
vis[temp] = ;
}
}
if(flag==-)
{
for(int i=; i<k-; i++)
printf("%d", ans[i]*/b);
}
else
{
if(flag==) printf("(");
else
{
for(int i=; i<flag; i++)
printf("%d", ans[i]*/b);
printf("(");
}
for(int i=flag; i<k; i++)
printf("%d", ans[i]*/b);
printf(")");
}
printf("\n");
}
return ;
}
小题精炼-----初试C语言的更多相关文章
- 关于SQL的几道小题详解
关于SQL的几道小题详解 当我们拿到题目的时候,并不是急于作答,那样会得不偿失的,而是分析思路,采用什么方法,达到什么目的,还要思考有没有简单的方法或者通用的方法等等,这样才会达到以一当十的效果,这样 ...
- ...续上文(一个小萌新的C语言之旅)
我们继续上次没介绍完的继续讲: 下面我们说一下二进制,二进制是计算技术中广泛采用的一种 数制. 二进制数据是用0和1两个 数码来表示的数.它的基数为2,进位规则是“逢二进一”.那么二进制怎么转化为十进 ...
- 常让人误解的一道js小题
一道小题引发的深思 今天无意中看到一个js笔试题,不由得想起初学js那会被各种题目狂虐的心酸,虽说现在也会被笔试题所虐,但毕竟比之前好了很多,下面就是我的个人理解,欢迎拍砖.指正: var x = 1 ...
- 一些js小题(一)
一些js小题,掌握这些对于一些常见的面试.笔试题应该很有帮助: var a=10; function aa(){ alert(a); } function bb(){ aa(); } bb();//1 ...
- 关于理解python类的小题
今天看了python部落翻译的一篇<一道python类的小题>文章,感觉挺有启发性,记录下来: print('A') class Person(object): print('B') de ...
- 20181014xlVBA获取小题零分名单
Sub GetZeroName() Dim Dic As Object Const SUBJECT = "科目名称" Dim Key As String Dim OneKey Di ...
- CF上的3道小题(2)
CF上的3道小题(2) T1:CF630K Indivisibility 题意:给出一个数n,求1到n的数中不能被2到9中任意一个数整除的数. 分析:容斥一下,没了. 代码: #include < ...
- CF上的3道小题(1)
CF上的3道小题 终于调完了啊.... T1:CF702E Analysis of Pathes in Functional Graph 题意:你获得了一个n个点有向图,每个点只有一条出边.第i个点的 ...
- python 小题
python 小题:给定一个字符串,找出不含有重复字符的最长子串的长度.示例 1:输入: "abcabcbb"输出: 3 解释: 无重复字符的最长子串是 "abc&quo ...
随机推荐
- webpack笔记_(3)_First_Project
知道了怎么样安装,那么学习一下简单的应用吧. 1.安装webpack npm install webpack -g (全局) npm install webpack --save--dev (本地) ...
- $(document).ready vs $(window).load vs window.onload
原文地址: $(document).ready vs $(window).load vs window.onload $(document).ready We execute our code whe ...
- jquery+thinkphp实现跨域抓取数据的方法
jquery的$.post发送数据到服务器后台,在由后台的PHP代码执行远程抓取,存到数据库ajax返回数据到前台,前台用JS接受数据并显示. //远程抓取获取数据$("#update_ac ...
- ecshop后台增加栏目查询会员是否重复注册
ecshop的后台要查询哪些会员是否有重复注册时,可以利用特定的栏目来判断~ 譬如会员电话... 修改前请务必先备份下列档案!!! admin/users.php admin/templates/us ...
- 【转】学习总结--Cookie & Session总结
转载地址:http://www.phperzone.cn/portal.php?aid=718&mod=view 一.状态管理 1)什么是状态管理? 将浏览器与web服务器之间多次交互过程 ...
- eclipse alt+/ 无效时,如何设置 《转》
一般情况下alt+/有代码提示作用,还有代码提示的快捷代码也不是alt+/,因此要恢复代码提示用alt+/.需要做两件事. 在 Window - Preferences - General - Key ...
- Android内存Activity泄露:Threads
Android编程中一个共同的困难就是协调Activity的生命周期和长时间运行的任务(task),并且要避免可能的内存泄露.思考下面Activity的代码,在它启动的时候开启一个线程并循环执行任务. ...
- 系统调优之numa架构
NUMA简介 在传统的对称多处理器(SMP, Symmetric Multiprocessing)系统中,整个计算机中的所有cpu共享一个单独的内存控制器.当所有的cpu同时访问内存时,这个内存控制器 ...
- react学习
http://www.cnblogs.com/yunfeifei/ http://wiki.jikexueyuan.com/project/react-native/native-ui-compone ...
- 利用JAVA Service Wrapper把JAVA程序做成windows服务
今天做了一个读取数据入库的程序.由于读取的数据每天都更新,于是就想把程序做成一个服务,每天定时执行.研究了一下,发现有几种方式可以做.下面我主要记录一下JAVA Service Wrapper方式. ...