① 急求:用c語言計算1至70中是7的倍數的數值之和
#include <stdio.h>
void main()
{
int i=0,sum=0;
for(i=1;i<=70;i++)
{
if(i%7==0)
sum+=i;
}
printf("1至70中是7的倍數的數值之和為%d\n",sum);
}
② C語言程序中,判斷這個數是否為7的倍數或者末尾含7的數
if(a%7==0||a%10==7)改成這樣,因為『=』是賦值的意思,『==』才是判斷相等的意思
③ 用C語言求一個數,7的倍數,既可以除8餘5,除9餘7
1、#include <stdio.h>
int main(void)
{
int i = 7;
while(i % 8 != 5 || i % 9 != 7)
{
i += 7;
}
printf("%d ", i);
return 0;
}
2、int part_1()
{
int i;
scanf("%d",&i);
if(i%5==0&&i%7==0)
return 1;
return 0;
}
(3)c語言m是7的倍數擴展閱讀:
C語言的運算符主要用於構成表達式,同一個符號在不同的表達式中,其作用並不一致。下面按計算的優先順序,分別說明不同作用的表達式。需要特別指出,在C語言標准中,並沒有結合性的說法。[1]
相同優先順序運算符,從左至右依次運算。注意後綴運算優先順序高於前綴。因此++i++應解釋為++(i++)。
而與或非的運算優先順序都不一樣,因此a && b || b && c解釋為(a && b) || (b && c)
合理使用優先順序可以極大簡化表達式。
④ 幫助編寫一個程序,判斷任意輸入的整數是否是7的倍數
#include <stdio.h>
void main() //c語言程序
{
int n;
printf("請輸入一個數\n");
scanf("%d",&n);
if(n%7) //取余運算.如果n被7整除結果為0,否則為正數
printf("不能");
else
printf("能");
}
#include <iostream.h>
void main(){ //c++程序
int n;
cout<<"請輸入一個數"<<endl;
cin>>n;
if(n%7) //取余運算.如果n被7整除結果為0,否則為正數
cout<<"不能"<<endl;
else
cout<<"能";
}
⑤ 給你一堆數,從中選若干個數湊出7的倍數,輸出其中最大的那個7的倍數 如何編程解決
樓上的解法都正確,但是數字多於30個的時候就會很慢!!
這是背包問題的變形~!!!背包才是正解~~~
先求出所有數字的和 和是7的倍數就最好啦~
不是的話就找出比和小又最接近和的7的倍數 然後背包一下看行不行~
再不行就試次小的數 一直試下去直到行為止 如果一直到7都不行就無解了!
如果使用備忘錄演算法 由於用的是同一個數組 所以時間復雜度不會很高~~
幾百幾千個數字都可以秒殺~~
你找一下背包問題,到處都有詳細解答~~~
http://..com/question/25002746.html
跟這個問題類似 只要稍微改一下題目和代碼就行
改了之後思路如下 幫你換成c語言了 給分啊~~~~~!!!
有一個箱子容量為v(正整數,o≤v≤20000),同時有n個物品(o≤n≤30),每個物品有一個體積(正整數)。要求從 n 個物品中,任取若千個裝入箱內,使箱子的剩餘空間為零。(這里的v就是你的s,這里的n就是你的n)
l 搜索方法 (一堆數的數目很少的時候就可以直接搜索 否則還是要用動歸)
void search(int k, int v) {搜索第k個物品,剩餘空間為v}
{
int i, j;
if(v<best) best=v;
if v-(s[n]-s[k-1])>=best return; // s[n]為前n個物品的重量和
if(k<=n){
if(v>w[k]) search(k+1,v-w[k]); // w[n]為第n個物品的重量
search(k+1,v);
}
}
best為全局變數,表示箱子的剩餘空間的最小值,初始值為設為很大的正數就好
所以 search(n,v)後 best為0則表示有解
2 DP 動態規劃(迭代法)
F[I,j]為前i個物品中選擇若干個放入使其體積正好為j的標志,為布爾型。
實現:將最優化問題轉化為判定性問題
F [I][j] =( F [ I-1 ][ j-w[I] ] || F [ I-1 ][ j ] )(w[I]<=j<=v) 邊界:f[0][0]=true;
for(I=1;I<=n;I++)
for(j=w[I];j>=v;j--)
F [I][j] =( F [ I-1 ][ j-w[I] ] || F [ I-1 ][ j ] ) ;
算完之後 F[n][v]為true則有解
3 DP 動態規劃(迭代法優化)
優化:當前狀態只與前一階段狀態有關,可降至一維。
F[0]=true;
for(I=1;I<=n;I++)
for(j=w[I];j>=v;j--)
F [j] =( F [ j-w[I] ] || F [ j ] );
算完之後 F[v]為true則有解
4 DP 動態規劃(備忘錄演算法)
F為二維數組int F[n][v] 一開始初始化為0
bool dp(int n, int v)
{
if(n==0 && v==0) return 1;
if(n==0 && v!=0) return -1;
if(F[n][v]!=0) return F[n][v];
if(dp(n-1,v-w[n])) return F[n][v]=1;
if(v>=w[n] && dp(n-1,v-w[n])) return return F[n][v]=1;
return F[n][v]=-1;
}
dp(n,v)為1則有解
⑥ c語言編程:求1-100內所有7的倍數
include
"stdio.h"
void
main()
{
int
i
;
i=7;
while(i<=100)
{
if((i%7)==0)
printf("%d",i);
i+=7;
}
}
要求7的倍數,那麼就是7不斷加上n個7,最後超過了100就不是所求,小於100的就是所求。
⑦ c語言程序設計,編寫函數判斷一個整數m的各位數字之和能否被7整除,可以被7整除則返回1,否則返回0
#include <stdio.h>
_Bool fun(int m)
{
int i = 0;
while(m)
{
i += m%10;
m /= 10;
}
if(i%7)
return 0;
return 1;
}
int main()
{
for(int i=100;i<=200;i++){
if(fun(i))printf("%d ",i);
}
return 0;
}
(7)c語言m是7的倍數擴展閱讀:
c語言寫規則:
1、一個說明或一個語句佔一行。
2、用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單獨佔一行。
3、低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
網路-C語言
⑧ 用C語言編寫程序:輸入整數m,輸出他能被7,11,17整除的信息
就是if else if if 語句寫很多case
代碼如下
# include<stdio.h>
# include<stdlib.h>
int main()
{
int m =0;
printf("請輸入一個值");
scanf("%d",&m);
if((m%7==0) && (m%11!=0) && (m%17!=0))
printf("該整數可以被7整除,不能被11和17整除");
else if((m%7==0) && (m%11==0) && (m%17!=0))
printf("該整數可以被7和11整除,不能被17整除");
else if((m%7==0) && (m%11!=0) && (m%17!=0))
printf("該整數可以被7和17整除,不能被11整除");
else if((m%7==0) && (m%11==0) && (m%17==0))
printf("該整數可以同時被7和11和17整除");
else if((m%7!=0) && (m%11==0) && (m%17!=0))
printf("該整數可以11整除,不能被7和17整除");
else if((m%7!=0) && (m%11==0) && (m%17==0))
printf("該整數可以同時被11和17整除,不能被7整除");
else if((m%7!=0) && (m%11!=0) && (m%17==0))
printf("該整數可以同時被17整除,不能被7和11整除");
else
printf("該整數不能被7和11和17整除");
system("pause");
return 1;
}
⑨ C語言的一道題目,看著都覺得不對,我覺得只要是7的倍數又不能被2、3整除的數都會輸出啊,但是結果不是。
3個if語句,x先做自增操作再做取余操作的。
28的結果這樣來的:
進第一個if前,x=25
if (++x%2==0):x=26,26%2=0判斷成立,進入判斷語句:
if(++x%3==0):x=27,27%3=0判斷成立,進入判斷語句:
if(++x%7==0):x=28,28%7=0判斷成立,進入列印語句。
70的結果同上分析。
另外,在進入第一個if語句前,x-1的值一定是3的倍數,因為x初始為1,循環有3個++x,加了3次.
⑩ 輸入一批正整數(以0或-1為結束標志),統計其中所有7的倍數的個數。c語言做
#include <stdio.h>
#include <math.h>
int isNumber(int n){
if (n%7==0) return 1; else return 0;
}
main(){
int m=0;
int v;
while(1){
if ( scanf("%d",&v)==1){
if (v==0 || v== -1)break;
m=m+isNumber(v);
};
}
printf("total: %d",m);
return 0;
}