25:求特殊自然数
描述
一个十进制自然数,它的七进制与九进制表示都是三位数,且七进制与九进制的三位数码表示顺序正好相反。编程求此自然数,并输出显示。
输入
无。
输出
三行:
第一行是此自然数的十进制表示;
第二行是此自然数的七进制表示;
第三行是此自然数的九进制表示。
样例输入
(无)
样例输出
(不提供)
#include <stdio.h>
int main()
{
int x,y,z;
int xyz,zyx;
for(x=1;x<7;x++)
{
for(y=0;y<7;y++)
{
for(z=1;z<7;z++)
{
xyz=x*7*7+y*7+z;
zyx=z*9*9+y*9+x;
if(xyz==zyx)
{
printf("%d\n%d%d%d\n%d%d%d\n",xyz,x,y,z,z,y,x);
}
}
}
}
return 0;
}
26:统计满足条件的4位数个数
描述
给定若干个四位数,求出其中满足以下条件的数的个数:
个位数上的数字减去千位数上的数字,再减去百位数上的数字, 再减去十位数上的数字的结果大于零。
输入
输入为两行,第一行为四位数的个数n,第二行为n个的四位数,数与数之间以一个空格分开。(n <= 100)
输出
输出为一行,包含一个整数,表示满足条件的四位数的个数。
样例输入
5
1234 1349 6119 2123 5017
样例输出
3
#include<stdio.h>
int main()
{
int a,b,c,d,n,i,s,h=0,m;
scanf("%d",&n);
for(i=0;i<=n;i++)
{
scanf("%d",&s);
a=s%10;
b=s%100/10;
c=s%1000/100;
d=s/1000;
m=a-d-b-c;
if(m>0)
{
h++;
}
}
printf("%d",h);
}
27:级数求和
描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入
一个整数K。
输出
一个整数n。
样例输入
1
样例输出
2
#include <stdio.h>
int main()
{
int k, n = 1;
double Sn=0;
scanf("%d", &k);
while (Sn <= k) {
Sn += 1.0 / n;
n++;
}
printf("%d", n-1 );
return 0;
}
28:分离整数的各个数位
描述
给定一个整数,要求从个位开始分离出它的每一位数字。
输入
输入一个整数,整数在1到100000000之间。
输出
从个位开始按照从低位到高位的顺序依次输出每一位数字。数字之间以一个空格分开。
样例输入
123
样例输出
3 2 1
#include <stdio.h>
int main()
{
long int n;
scanf("%d",&n);
while(n!=0)
{
printf("%d ",n%10);
n/=10;
}
return 0;
}
29:数字反转
描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。
输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1:
123
样例 #2:
-380
样例输出
样例 #1:
321
样例 #2:
-83
#include<stdio.h>
int main()
{
int x,y;
scanf("%d",&x);
y=0;
while ( x!=0 )
{
y*=10;
y+=x%10;
x/=10;
}
printf("%d\n",y);
return 0;
}
30:含K个3的数
描述
输入两个正整数 m 和 k,其中1 < m < 100000,1 < k < 5 ,判断 m 能否被19整除,且恰好含有k个3,如果满足条件,则输出YES,否则,输出NO。
例如,输入:
43833 3
满足条件,输出YES。
如果输入:
39331 3
尽管有3个3,但不能被19整除,也不满足条件,应输出NO。
输入
m 和 k 的值,中间用单个空格间隔。
输出
满足条件时输出 YES,不满足时输出 NO。
样例输入
43833 3
样例输出
YES
#include<stdio.h>
int main() {
int m, k, num;
num = 0; //num用于存放k的个数
scanf("%d %d", &m, &k);
if (m % 19 == 0) {
while (m) {
if (m % 10 == 3) num++; //判断最后一位数是否为3,并记录3的个数
m = m / 10; //不断去除最后一位数字,并循环判断3的个数;
}
if (k == num) //当num=k时,则证明输入的数中含k个3
printf("YES");
else
printf("NO");
} else
printf("NO");
return 0;
}