小题精炼-----初试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 ...
随机推荐
- Android NDK 开发(四)java传递数据到C【转】
转载请注明出处:http://blog.csdn.net/allen315410/article/details/41845701 前面几篇文章介绍了Android NDK开发的简单概念.常见错误及处 ...
- ServiceStack.Redis 之 IRedisTypedClient 04_转
IRedisTypedClient IRedisTypedClient类相当于IRedicClient的强类型版,其方法与属性大多数与IRedisClient类似. 它支持在Redis中使用Linq查 ...
- struts2的两个核心配置文件
struts2的两个核心配置文件,即:struts.default.xml和struts.properties A,位置:都在struts2-core-version.jar文件中 B,作用,stru ...
- Linux批量修改用户密码
对系统定期修改密码是一个很重要的安全常识,通常,我们修改用户密码都使用passwd user这样的命名来修改密码,但是这样会进入交互模式,即使使用脚本也不能很方便的批量修改,除非使用expect这样的 ...
- ACE的接受器(Acceptor)和连接器(Connector):连接建立模式
ACE_Acceptor工厂的open()方法,或是它的缺省构造器(它实际上会调用open()方法),来开始被动侦听连接.当接受器工厂的open()方法被调用时,如果反应堆单体还没有被实例化,open ...
- S3c6410 平台 Android系统的Wi-Fi调试记录
硬件平台:S3c6410 操作系统:Android 网卡芯片:GH381(SDIO接口 sdio8688) 1.SDIO驱动 因为是SDIO接口,所以请先保证mmc驱动(代码在“kernel\driv ...
- 【转】MYSQL入门学习之十三:自定义函数的基本操作
转载地址:http://www.2cto.com/database/201212/177382.html 一.自定义函数(UDF)的特性和功能 www.2cto.com 函数能分 ...
- Android invalidate() 和 postInvalidate()的区别
Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,因为他是违背了单线程模型:Android UI操作并不是线程安全的,并且这些操作必须在UI线程中 ...
- 分组排序SQL
SELECT * FROM (SELECT columns,ROWNUM AS RN FROM (SELECT DISTINCT columns FROM table WHERE 1=1)) T WH ...
- python中string.casefold和string.lower区别
string.casefold和string.lower 区别 python 3.3 引入了string.casefold 方法,其效果和 string.lower 非常类似,都可以把字符串变成小写, ...