目录
4.翻转直角三角形图案(正着输出三角形你会,但反着输出你会吗)
6. 小乐乐走台阶(一次走一阶台阶或两节台阶,算多少方法的问题)
1.小乐乐与进制转换(十进制转六进制)
链接 小乐乐与进制转换_牛客题霸_牛客网 (nowcoder.com)
先看一下十进制怎么转六进制
好了下来上两种方法的代码
#include<stdio.h>
int main()
{
int n = 0, i = 0, count = 0;
int arr[10] = { 0 };
scanf("%d", &n);
if (n < 6)
{
printf("%d\n", n);
}
else {
while (n) {
count++;
arr[i++] = n % 6;
n /= 6;
}
for (int j = count; j > 0; j--)
{
printf("%d", arr[j - 1]);
}
}
return 0;
}
#include<stdio.h>
void print(int n)
{
if(n>5)
{
print(n/6);
}
printf("%d",n%6);
}
int main()
{
int n =0;
scanf("%d",&n);
print(n);
return 0;
}
2.[NOIP2015]金币(按规律计算金币个数)
链接 [NOIP2015]金币_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
int main()
{
int k=0,m=0,sum=0;
scanf("%d",&k);
for(int i=1;m<k;i++)
{
for(int j=0;j<i;j++)
{
sum+=i;
m++;
if(m==k)
{
break;
}
}
}
printf("%d",sum);
return 0;
}
3. 水仙花数(正常水仙花数的升级版)
链接 水仙花数_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
int main()
{
int m,n;
while(~scanf("%d %d",&m,&n)){
int count=0;
for(int i=m;i<=n;i++)
{
if(((i%10)*(i%10)*(i%10)+(i%100/10)*(i%100/10)*(i%100/10)+(i/100)*(i/100)*(i/100))==i)
{
count++;
printf("%d ",i);
}
}
if(count==0){
printf("no\n");
}else{
printf("\n");
}
}
return 0;
}
4.翻转直角三角形图案(正着输出三角形你会,但反着输出你会吗)
链接 翻转直角三角形图案_牛客题霸_牛客网 (nowcoder.com)
正着for循环是正着的三角形,那么现在要反着的三角形要怎么做,很简单,也反着for循环–;
#include<stdio.h>
int main()
{
int n=0,d=0;
while(~scanf("%d",&n))
{
int i,j;
for(i=n;i>0;i--)
{
for(j=i;j>0;j--)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
5.带空格直角三角形图案+金字塔三角形(for的嵌套使用)
链接 带空格直角三角形图案_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
int main()
{
int n=0;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
再看一个输出金字塔(和上个题方法基本一样)
#include<stdio.h>
int main()
{
int n=0;
while(~scanf("%d",&n))
{
for(int i=0;i<n;i++)
{
int j=0;
for(j=0;j<n-i-1;j++)
{
printf(" ");
}
for(j=0;j<=i;j++)
{
printf("* ");
}
printf("\n");
}
}
return 0;
}
6. 小乐乐走台阶(一次走一阶台阶或两节台阶,算多少方法的问题)
链接 小乐乐走台阶_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
int method(int n)
{
return n<=2?n:method(n-1)+method(n-2);
}
int main()
{
int n=0;
scanf("%d",&n);
printf("%d\n",method(n));
return 0;
}
7.函数实现计算一个数的阶乘(用递归实现数字的阶乘)
链接 函数实现计算一个数的阶乘_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
long long factorial(int n)
{
if(n==1)
{
return 1;
}
return n*factorial(n-1);
}
int main()
{
int n=0;
scanf("%d",&n);
factorial(n);
printf("%lld",factorial(n));
return 0;
}
8. 牛牛的digit(输出后面的数字)
链接 牛牛的digit_牛客题霸_牛客网 (nowcoder.com)
这里有一个比较巧妙的方法,大家可以看一下
#include<stdio.h>
void digit(int x,int i)
{
int n=1;
while(i)
{
i--;
n*=10;
}
printf("%d\n",x%n);
}
int main()
{
int x=0,i=0;
scanf("%d %d",&x,&i);
digit(x, i);
return 0;
}
9.序列中删除指定数字
链接 序列中删除指定数字_牛客题霸_牛客网 (nowcoder.com)
#include<stdio.h>
int main()
{
int n=0,a=0,i=0;
scanf("%d",&n);
int arr[10]={0};
for(i=0;i<n;i++)
{
scanf("%d ",&arr[i]);
}
scanf("%d",&a);
for(i=0;i<n;i++)
{
if(arr[i]!=a)
{
printf("%d ",arr[i]);
}
}
return 0;
}
10. 有序序列合并
链接 有序序列合并_牛客题霸_牛客网 (nowcoder.com)
#include <stdio.h>
int main()
{
int n = 0;
int m = 0;
int arr1[1000] = {0};
int arr2[1000] = {0};
//输入
scanf("%d %d", &n, &m);
int i = 0;
for(i=0; i<n; i++)
{
scanf("%d", &arr1[i]);
}
for(i=0; i<m; i++)
{
scanf("%d", &arr2[i]);
}
//处理
int j = 0;
i = 0;
while(i<n && j<m)
{
if(arr1[i] < arr2[j])
{
printf("%d ", arr1[i]);
i++;
}
else
{
printf("%d ", arr2[j]);
j++;
}
}
if(i == n)
{
for(; j<m; j++)
{
printf("%d ", arr2[j]);
}
}
else
{
for(; i<n; i++)
{
printf("%d ", arr1[i]);
}
}
return 0;
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/87379.html