C/C++小算法
来源:互联网 发布:js 延时执行 编辑:程序博客网 时间:2024/06/10 08:39
C/C++语言基础小算法:
描述
无穷数列1,1,2,3,5,8,13,21,34,55…称为Fibonacci数列,它可以递归地定义为
F(n)=1 ………..(n=1或n=2)
F(n)=F(n-1)+F(n-2)…..(n>2)
现要你来求第n个斐波纳奇数。(第1个、第二个都为1)
输入
第一行是一个整数m(m<5)表示共有m组测试数据
每次测试数据只有一行,且只有一个整形数n(n<20)
输出
对每组输入n,输出第n个Fibonacci数
样例输入
3
1
3
5
样例输出
1
2
5
#include <iostream>using namespace std;int main(){ int m,n,f1=1,f2=1,i; cin>>n; while(n--) { f1=1,f2=1; cin>>m; for(i=2;i<m;i++) { f1=f1+f2; f2=f1-f2; } cout<<f1<<endl; } return 0;}
十进制转十六进制
题目描述
十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十进制的30在十六进制中是1E。要求给出一个非负整数,将它表示成十六进制的形式。
输入
第一行输入一个非负整数a,表示要转换的数,0<=a<=2147483647。
输出
输出这个整数的16进制表示,其中A,B,C,D,E,F都是大写字母。
样例输入
30
样例输出
1E
#include<stdio.h> #include<string.h> #include<math.h> #include<stdlib.h> int main() { long n; int a[1000]; int i,j=0; scanf("%ld",&n); if(n==0) printf("0"); else { while(n!=0) { a[j]=n%16; j++; n/=16; } for(i=j-1;i>=0;i--) { if(a[i]<=9) printf("%d",a[i]); else { printf("%c",a[i]-10+(int)'A'); } } } printf("\n"); return 0; }
.核桃的数量
题目描述
小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:
(1)各组的核桃数量必须相同;
(2)各组内必须能平分核桃(当然是不能打碎的)
(3)尽量提供满足1,2条件的最小数量(节约闹革命嘛)
输入
输入包含三个正整数a,b,c,表示每个组正在加班的人数,用空格分开 (a,b,c均小于30)。
输出
输出一个正整数,表示每袋中核桃的数量,不要输出多余的信息。
样例输入
30 12 9
样例输出
180
辗转相除法求得最大公约数,再两两求最小公倍数
#include <iostream>using namespace std;int zhanzhuan(int x,int y);int main(){ int x,y,z; int f1,f2; cin>>x>>y>>z; f1=x*y/zhanzhuan(x,y); f2=f1*z/zhanzhuan(f1,z); cout<<f2<<endl; return 0; } int zhanzhuan(int x,int y) { int t,s; if(y>x) { t=x; x=y; y=t; } while(y!=0) { s=y; y=x%y; x=s; } return x; }
ASCII码排序
时间限制:3000 ms | 内存限制:65535 KB
难度:2
描述
输入三个字符(可以重复)后,按各字符的ASCII码从小到大的顺序输出这三个字符。
输入
第一行输入一个数N,表示有N组测试数据。后面的N行输入多组数据,每组输入数据都是占一行,有三个字符组成,之间无空格。
输出
对于每组输入数据,输出一行,字符中间用一个空格分开。
样例输入
2
qwe
asd
样例输出
e q w
a d s
#include<stdio.h>int main() { char a[3]; int n,i,j,t; scanf("%d ",&n); while(n--) { gets(a); //a[i]=getchar(); for(i = 0; i<3; i++) for(j = 0; j<3-i-1; j++) { if(a[j]>a[j+1]) { t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } for(i=0;i<3;i++) printf("%c ",a[i]); printf("\n"); } return 0; }
问题描述
Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。
当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。
输入格式
输入包含一个整数n。
输出格式
输出一行,包含一个整数,表示Fn除以10007的余数。
说明:在本题中,答案是要求Fn除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出Fn的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入
10
样例输出
55
样例输入
22
样例输出
7704
数据规模与约定
1 <= n <= 1,000,000。
#include <stdio.h>int main(){ long n,i; long f1,f2,f=1; f1=1,f2=1; scanf("%ld",&n); if(1 <= n <= 1000000) { for(i=2;i<n;i++) { f=(f1+f2)%10007; f1=f2%10007; f2=f; } printf("%ld ",f); } return 0;}
问题描述
给定圆的半径r,求圆的面积。
输入格式
输入包含一个整数r,表示圆的半径。
输出格式
输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
样例输入
4
样例输出
50.2654825
数据规模与约定
1 <= r <= 10000。
提示
本题对精度要求较高,请注意π的值应该取较精确的值。你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
#include <stdio.h>#define PI 3.14159265358979323#define NUM 100000000int main(){ double r,s; scanf("%lf",&r); s=((PI*r*r)*NUM+0.5)/NUM; printf("%.7lf",s); return 0;}
问题描述
给定n个十六进制正整数,输出它们对应的八进制数。
输入格式
输入的第一行为一个正整数n (1<=n<=10)。
接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。
输出格式
输出n行,每行为输入对应的八进制正整数。
【注意】
输入的十六进制数不会有前导0,比如012A。
输出的八进制数也不能有前导0。
样例输入
2
39
123ABC
样例输出
71
4435274
【提示】
先将十六进制数转换成某进制数,再由某进制数转换成八进制。
#include <stdio.h>int main(){ int n,sum=0; scanf("%d",&n); char h[100000],o[100000]; while(n--) { scanf("%s",h); int i,t; for(i=0;h[i]!='\0';i++) { if(h[i]<='9') t=h[i]-'0'; else t=h[i]-'a'+10; sum=sum*16+t; } //printf("%d\n",sum); int j=0; while(sum!=0) { o[j]=sum%8; j++; sum=sum/8; } for(i=j-1;i>=0;i--) { if(o[i]<8) printf("%d",o[i]); else printf("%d",o[i]-8); } printf("\n"); }}
- C/C++小算法
- C语言循环小算法
- 简单的C小算法
- C的小算法集合
- C语言一些基本小算法!
- 小谈C++STL算法-sorting
- C语言——小算法
- C一些常用的数学小算法
- C语言的小算法技巧
- C语言常见字符串小算法内容
- 【C/C++】C语言复习笔记-17种小算法-解决实际问题
- [C/C++]洗牌算法
- [C/C++] 常用算法
- C算法
- C算法
- 算法 C
- C 算法
- C++--算法
- CSS的clip实现元素的逐渐显示和消失
- eclipse快捷键大全
- 用maven插件自动生成mybatis代码
- 如何使用sha1方法
- 原因:CORS 头缺少 'Access-Control-Allow-Origin'
- C/C++小算法
- Hadoop学习
- Linux Kernel之spin_lock之ARM实现
- 开发环境配置记录 win 8 系统
- 乘积最大&蓝桥杯最大的算式 动态规划 递推
- Java内存溢出详解及解决方案
- 【C++】C++动态内存管理
- SAP HANA中文技术文档(跟matinal学HANA)
- Lock