1.你猜!
题目描述
X侦探收到了一封匿名信,信封没有透露任何寄信人的信息,内容上也完全看不懂,仿佛是一堆乱码,但是在经过十分之一微秒的思考之后,他发现了其中的奥妙,啊!就这?他发现如果把所有字符后移三位就可以得出本来的意思,例如:dwr后移三位可得gzu,如果是x,y,z则循环后移变成a,b,c,但是信件内容太多了,希望你能帮他。
输入描述
输入一段长度小于50的字符串。
输出描述
输出解密后的字符串,行末无多余空格
样例输入
abcdefghijklmnopqrstuvwxyz
样例输出
defghijklmnopqrstuvwxyzabc
#include<stdio.h>
#include<string.h>
int main()
{ char a[50];
int i=0;
scanf("%s",a);
int l=strlen(a);
while(i<l){
if(a[i]>='x')
printf("%c",a[i]-23);
else printf("%c",a[i]+3);
i++;}
return 0;
}
输入一个正整数n,输出n的阶乘。
输入描述
正整数n(0<=n<=20)
输出描述
输入可能包括多组数据,对于每一组输入数据,输出n的阶乘
注:对于有多组输入的数据,可以用while循环函数不断读取输入数据,判断结束条件为Scanf函数返回结果为EOF。参考下列不断读入两个数a和b,并输出a+b结果的代码:
#include <stdio.h>
int main()
{
int a,b;
while(scanf("%d %d",&a, &b) != EOF)
printf("%d\n",a+b);
return 0;
}
样例输入
4
5
15
样例输出
24
120
1307674368000
#include<stdio.h>
void main()
{ long long int a=1,i;
while(scanf("%lld",&i) != EOF){
for(;i>=1;i=i-1){
a=a*i;}
printf("%lld\n",a);
a=1;}
return 0;
}
题目描述
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早晨又将剩下的桃子吃掉一半,又多吃了一个。以后每天早晨都吃了前一天剩下的一半零一个。到第n天早晨想再吃时,就只剩下一个桃子了。求第一天共摘了多少个桃子。
输入描述
一个正整数n。
输出描述
输出第一天共摘了多少个桃子。
请注意行尾输出换行。
样例输入
10
样例输出
1534
#include<stdio.h>
int main()
{
int p,i,s=1;
scanf("%d",&p);
for(i=1;i<p;i++)
s=(s+1)*2;
printf("%d\n",s);
return 0;
}
一个球从100米高度自由落下,每次落地后反弹会原高度的一半,再落下,再反弹。求它在第n次落地时,共经过多少米以及第n次反弹多高。
输入描述
一个正整数n。
输出描述
第n次落地时共经过多少米以及第n次反弹多高,保留4位小数。
请注意行尾输出换行。
样例输入 复制 更多
10
样例输出
299.6094 0.0977
#include<stdio.h>
void main()
{int i,n;
double high=100.0,high2=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
high=high/2.0;
high2=2*high+high+high2;
}
high2=high2-high;
printf("%.4f %.4f",high2,high);
return 0;
}
题目描述
一个数如果恰好等于它的因子之和,这个数就被称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。找出1000之内的所有完数,并输出。
输入描述
无
输出描述
每一个完数一行。在每一行中,首先输出这个完数的值,再输出一个冒号,之后从小到大输出这个完数的所有因子,在每个因子前输出一个空格。
请注意行尾输出换行。
样例输入
无
样例输出
6: 1 2 3
28: 1 2 4 7 14
496: 1 2 4 8 16 31 62 124 248
#include<stdio.h>
int main()
{int i,n,a,m;
for(i=1;i<=1000;i++){a=0;
for(n=1;n<=i;n++){
if(i%n==0&&i!=n)a=a+n;
else if(i==n&&a==n){
printf("%d: ",i);
for(m=1;m<=i;m++){
if(i%m==0&&i!=m)
printf("%d ",m);}printf("\n");}
}
}return 0;
}
求(第二个是50)
输入描述
无
输出描述
题目描述中算式的值,并保留4位小数。
请注意行尾输出换行。
样例输入 复制 更多
无
样例输出
47977.9290
#include<stdio.h>
int main()
{int a=0,i,b=0;
double c=0.0,n,d=0.0;
for(i=1;i<=100;i++)
a=i+a;
for(i=1;i<=50;i++)
b=i*i+b;
for(n=1;n<=10;n++)
c=c+1/n;
d=a+b+c;
printf("%.4f",d);
return 0;
}
题目描述
求出100至200间的所有素数。
输入描述
无
输出描述
输入所有符合条件的素数,并在每一个数之后输出一个空格。
请注意行尾输出换行。
样例输入
无
样例输出
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
#include<stdio.h>
int main()
{int i,n;
for(i=100;i<=200;i++){
for(n=2;n<=i;n++){
if(n==i)printf("%d ",n);
else if(i%n==0)
break;
else ;}
}return 0;
}
题目描述
判断一个数是否是素数。
输入描述
一个大于1且小于100000000的整数m。
输出描述
如果m是素数,输出“prime”,否则请输出“not prime”。
请注意不需要输出引号,行尾输出换行。
样例输入
10000019
样例输出
prime
#include<stdio.h>
int main()
{long long int a,i;
scanf("%lld",&a);
for(i=2;i<=a;i++){
if(i==a)printf("prime");
else if(a%i==0)printf("not prime");}
return 0;
}
求Fibonacci数列的前40个数。这个数列有如下特点:第1、2两个数为1、1。从第3个数开始,该数是其前面两个数之和。即:
输入描述
无
输出描述
输出Fibonacci数列的前40个数,并在每个数之后输出一个空格。
请注意行尾输出换行。
样例输入 复制 更多
无
样例输出
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155
#include<stdio.h>
int main()
{int a1=1,a2=1,a3=0,i;
printf("%d %d ",a1,a2);
for(i=1;i<=12;i++){
a3=a1+a2;
printf("%d ",a3);
a1=a3+a2;
printf("%d ",a1);
a2=a1+a3;
printf("%d ",a2);
}
a3=a1+a2;
a1=a3+a2;
printf("%d %d",a3,a1);
return 0;
}
使用
这个公式求π的近似值,直到某一项的绝对值小于10-6为止。
输入描述
无
输出描述
输出π的近似值,保留6位小数。
请注意行尾输出换行。
样例输入 复制 更多
无
样例输出
3.141591
#include<stdio.h>
void main()
{int b=-1;
double c=1.0,a=0.0,i;
for(i=1.0;1/i>=0.000001;i=i+2){
a=(-b)*1/i+a;
b=-b;
}
printf("%f",4*a);
return 0;
}
题目描述
用do…wihle语句求1+2+3+…+100的值。
输入描述
无
输出描述
输出题目描述中表达式的值。请注意行尾输出换行。
样例输入
无
样例输出
5050
#include<stdio.h>
int main()
{int a=0,i=0;
do{a=a+i;
i++;
}
while(i<=100);
printf("%d",a);
}
求1+2+3+…+100的值。
输入描述
无
输出描述
输出题目描述中表达式的值。请注意行尾输出换行。
样例输入
无
样例输出
5050
#include<stdio.h>
int main()
{int i,a=0;
for(i=1;i<=100;i++)
a=a+i;
printf("%d",a);
}
题目描述
给定一个不多于5位的正整数,要求:
1、 求出它是几位数;
2、 分别输出每一位数字,且每一位数字之后输出一个空格;
3、 按逆序输出各位数字,且每一位数字之后输出一个空格。
输入描述
一个不多于5位的正整数。
输出描述
共有三行,分别对应题目描述中提到的三个要求。
请注意行尾输出换行。
提示
提示
样例输入 复制 更多
34568
样例输出
5
3 4 5 6 8
8 6 5 4 3
#include<stdio.h>
#include<string.h>
int main()
{ char a[10],i;
scanf("%s",a);
int l=strlen(a);
printf("%d\n",l);
for(i=0;i<l;i++)
printf("%c ",a[i]);
printf("\n");
for(i=l-1;i>=00;i--)
printf("%c ",a[i]);
return 0;
}