当前位置: 首页 > news >正文

哈工大 sse C语言 困难

Q1892.(10分数, 语言: C)Two Bags of Potatoes
time limit per test1 second
memory limit per test256 megabytes
inputstandard input
outputstandard output
Valera had two bags of potatoes, the first of these bags contains x (x≥1)
potatoes, and the second — y (y≥1) potatoes. Valera — very scattered
boy, so the first bag of potatoes (it contains x potatoes) Valera lost.
Valera remembers that the total amount of potatoes (x+y) in the two bags,
firstly, was not gerater than n, and, secondly, was divisible by k.
Help Valera to determine how many potatoes could be in the first bag.
Print all such possible numbers in ascending order.
Input
The first line of input contains three integers y, k, n (1≤y,k,n≤10^9;
n/k≤10^5).
Output
Print the list of whitespace-separated integers — all possible values
of x in ascending order. You should print each possible value of x exactly
once. If there are no such values of x print a single integer -1.

中文翻译:

题目描述

瓦莱拉有两个装满土豆的袋子。第一个袋子里有x(x≥1)个土豆,第二个袋子里有y(y≥1)个土豆。瓦莱拉是一个非常粗心大意的男孩,所以他丢失了第一个袋子(里面装有x个土豆)。

瓦莱拉记得,这两个袋子里的土豆总数(x+y)首先不会超过n,其次这个总数能被k整除。

请帮助瓦莱拉确定第一个袋子里可能有多少个土豆。按照升序打印出所有可能的数字。

输入

输入的第一行包含三个整数y, k, n(1≤y,k,n≤10^9;n/k≤10^5)。

输出

打印一个由空格分隔的整数列表——所有可能的x值,按照升序排列。每个可能的x值应该只打印一次。如果没有这样的x值,打印单个整数-1。

题目分析

这道题目要求我们找到所有可能的x值,满足条件:x + y ≤ n 且 (x + y) % k == 0。

我们可以遍历所有可能的x值,从1开始,直到n - y(因为x + y ≤ n),检查每个x值是否满足第二个条件 (x + y) % k == 0。如果满足,则打印该x值。

如果遍历完所有可能的x值后都没有找到满足条件的x,则打印-1。

#include <stdio.h>  int main() {  long long y, k, n;  scanf("%lld %lld %lld", &y, &k, &n);  int found = 0; // 标记是否找到满足条件的x  for (long long x = 1; x <= n - y; ++x) {  if ((x + y) % k == 0) {  printf("%lld ", x);  found = 1;  }  }  if (!found) {  printf("-1");  }  return 0;  
}
Q1331.(10分数, 语言: C)将一个链表按逆序排列,即将链头当链尾,链尾当链头。
程序的运行示例如下:
请输入链表(非数表示结束)
结点值:3
结点值:4
结点值:5
结点值:6
结点值:7
结点值:end
原来表:3   4   5   6   7反转表:7   6   5   4   3

 链表用数组完成

#include<stdio.h>
#define N 100
void main(){int a[N];int i=-1;int x;printf("\n请输入链表(非数表示结束)\n");do{i++;printf("结点值:");x = scanf("%d",&a[i]);}while(x==1);i--;printf("\n原来表:\n");for(int j=0;j<=i;j++){printf("%4d",a[j]);}for(int j=0;j<=i/2;j++){int term = a[j];a[j] = a[i-j];a[i-j] = term;}printf("\n\n反转表:\n");for(int j=0;j<=i;j++){printf("%4d",a[j]);}}
Q378.(10分数, 语言: C)

*汉诺塔问题是一个著名的问题,初始模型如图所示。其来源据说是在约19世纪末欧洲的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆自上而下、由小到大顺序串着64个圆盘构成的塔,游戏的目的是将最左边A杆上的圆盘,借助最右边的C杆,全部移动到中间的B杆上,条件是一次仅能移动一个盘,且不允许大盘放在小盘的上面。

**输入格式要求:"%d" 提示信息:"Please enter the number of discs:"

**输出格式要求:"\tTotal:%d\n"    "%2d-(%2d):%c==>%c\n" 

if (n == 1) {  
        (*count)++;
        printf("%2d-(%2d):%c==>%c\n" , *count, n, from, to); 
        return;  
    }  
    hanoi(n - 1, from, aux, to,count);  
    (*count)++;
    printf("%2d-(%2d):%c==>%c\n", *count, n, from, to);  
    hanoi(n - 1, aux, to, from,count);  

#include <stdio.h>  void hanoi(int n, char from, char to, char aux,int *count) {  if (n == 1) {  (*count)++;printf("%2d-(%2d):%c==>%c\n" , *count, n, from, to); return;  }  hanoi(n - 1, from, aux, to,count);  (*count)++;printf("%2d-(%2d):%c==>%c\n", *count, n, from, to);  hanoi(n - 1, aux, to, from,count);  
}  int main() {  int n;int count=0; printf("Please enter the number of discs:");  scanf("%d", &n);  // 从a杆移动到b杆,使用c杆作为辅助  hanoi(n, 'a', 'b', 'c',&count);  // 输出总步数  printf("\tTotal:%d\n", count); return 0;  
}
Q3079.(10分数, 语言: C)猴子吃桃程序_扩展2
猴子第一天摘了若干个桃子,吃了一半,不过瘾,又多吃了1个。第二天早上将剩余的桃子又吃掉一半,并且又多吃了1个。此后每天都是吃掉前一天剩下的一半零一个。到第n天再想吃时,发现只剩下1个桃子,问第一天它摘了多少桃子?为了加强交互性,由用户输入不同的天数n进行递推,即假设第n天的桃子数为1。同时还要增加对用户输入数据的合法性验证(如:不允许输入的天数是0和负数)程序运行结果示例:
Input days:
0↙
Input days:
-5↙
Input days:
a↙
Input days:
3↙
x=10输入格式:"%d"
输出格式:
输入提示信息:"Input days:\n"
输出:"x=%d\n"

// 如果读取失败,则清除输入缓冲区  
            while (getchar() != '\n');  

#include <stdio.h>  int main() { // main 函数应该有返回类型 int  int n;  do {  printf("Input days:\n");  int success = scanf("%d", &n); // 检查scanf的返回值  if (success != 1) {  // 如果读取失败,则清除输入缓冲区  while (getchar() != '\n');  }  } while (n <= 0);  int sum = 1;  for (int i = 0; i < n-1; i++) {  sum = (sum + 1) * 2;  }  printf("x=%d\n", sum); // 输出变量名应该和变量定义保持一致  return 0; // main 函数应返回0表示程序正常结束  
}
Q1313.(10分数, 语言: C)找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最小。也可能没有鞍点。
**输入数据格式:
"\n输入行数:"
"%d"
"\n输入列数:"
"%d"
"第%d行?\n"
"%d"
**输出格式要求:
"%5d"
"\n第%d行,第%d列的%d是鞍点\n"
"\n矩阵中无鞍点!\n"
程序的运行示例1如下:
输入行数:3
输入列数:3
第0行?
1 2 3
第1行?
4 5 6
第2行?
7 8 91    2    34    5    67    8    9第0行,第2列的3是鞍点
程序的运行示例2如下:
输入行数:2
输入列数:2
第0行?
1 2
第1行?
4 11    24    1矩阵中无鞍点!

#include <stdio.h>
#include <stdlib.h>#define M_ROW 3
#define N_COL 3int main(){int M,N;int matrix[M_ROW][N_COL];printf("\n输入行数:");scanf("%d",&M);printf("\n输入列数:");scanf("%d",&N);for(int i = 0; i < M; i++){printf("第%d行?\n",i);for(int j = 0; j < N; j++){scanf("%d", &matrix[i][j]);}}for(int i = 0; i < M; i++){for(int j = 0; j < N; j++){printf("%5d",matrix[i][j]);}printf("\n");}int sign = 0;int row, col, maxRow, colMin;for(int i = 0; i < M; i++){maxRow = matrix[i][0];row = i;col = 0;for(int j = 0; j < N; j++){if(matrix[i][j] > maxRow){maxRow = matrix[i][j];row = i;col = j;}}colMin = maxRow;for(int k = 0; k < M; k++){if(matrix[k][col] < colMin){colMin = matrix[k][col];break;}}if(colMin == maxRow){sign = 1;printf("\n第%d行,第%d列的%d是鞍点\n",row , col,maxRow);}}if(sign == 0){printf("\n矩阵中无鞍点!\n");}system("pause");return 0;
}

相关文章:

  • Docker安装各种组件
  • 上位机图像处理和嵌入式模块部署(qmacvisual之ROI设定)
  • 第十一章:位运算符与位运算
  • ABC346 A-G 题解
  • uni-app 富文本编辑器
  • Rust 实战练习 - 1. 输入,输出,环境变量,字符,字符串
  • flask_Restful数据解析参数设置
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • flowable-ui后台显式非中文
  • 百度文心一言(ERNIE bot)API接入Android应用
  • DNS、DNS劫持与HTTPDNS:原理、应用与安全分析
  • 外包干了一个月,忘记Git怎么使用了...
  • Rust 标准库:std::env::args() 函数简介
  • linux系统装载nginx的笔记
  • IDEA一键备份MySQL数据库(mysqldump版)
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Android Studio:GIT提交项目到远程仓库
  • C学习-枚举(九)
  • Docker容器管理
  • ECS应用管理最佳实践
  • hadoop入门学习教程--DKHadoop完整安装步骤
  • Java 多线程编程之:notify 和 wait 用法
  • js作用域和this的理解
  • linux安装openssl、swoole等扩展的具体步骤
  • text-decoration与color属性
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • XML已死 ?
  • Zepto.js源码学习之二
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 开发了一款写作软件(OSX,Windows),附带Electron开发指南
  • 开放才能进步!Angular和Wijmo一起走过的日子
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 判断客户端类型,Android,iOS,PC
  • 强力优化Rancher k8s中国区的使用体验
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 使用权重正则化较少模型过拟合
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • zabbix3.2监控linux磁盘IO
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • ​520就是要宠粉,你的心头书我买单
  • ​secrets --- 生成管理密码的安全随机数​
  • #pragma once
  • $().each和$.each的区别
  • (39)STM32——FLASH闪存
  • (强烈推荐)移动端音视频从零到上手(下)
  • (四) 虚拟摄像头vivi体验
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (轉貼)《OOD启思录》:61条面向对象设计的经验原则 (OO)